8.1 KiB
8.1 KiB
In [2]:
import requests
import re
from bs4 import BeautifulSoup
#import qrcode
import os
import sys
import subprocess
import time
response = requests.get('https://www.esg-handball.de/training/index')
Fi =str(response.content.decode('utf-8', 'ignore'))
Fi_cleaned = re.sub('(\s{2,})',' ',str(Fi))
soup = BeautifulSoup(Fi_cleaned, 'html.parser')
tabelle=soup.find_all(class_='content-box m-bot-15')
rows = soup.find_all('table')
#print(rows[0])
header = soup.find_all('h2')
#print(header)
parse=re.compile(r"\<h2\>(.*)\<\/h2\>")
headers =[]
for head in header:
name=parse.findall(str(head))
try:
headers.append(name[0])
except:
continue
dates = []
for row in rows:
training = row.find_all('p')
parse=re.compile(r"\<p\>(.*)\<\/p\>")
date = []
for ele in training:
name=parse.findall(str(ele))
date.append(name[0])
dates.append(date)In [ ]:
#print(dates)In [3]:
tex_code = r"""
\documentclass[12pt,a4paper,landscape]{extarticle}
\usepackage[T1]{fontenc}
\usepackage[default]{opensans}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage[margin=0.1in]{geometry}
\usepackage{array}
\usepackage{arev}
%\usepackage[T1]{fontenc}
\usepackage{scalefnt}
\usepackage{caption}
\usepackage{array}
\usepackage{graphicx}
\usepackage[absolute]{textpos}
\usepackage{threeparttable}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\makeatletter
\newcommand{\thickhline}{%
\noalign {\ifnum 0=`}\fi \hrule height 2pt
\futurelet \reserved@a \@xhline
}
\setlength{\tabcolsep}{.16667em}
\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 2pt\hskip\tabcolsep}}
\makeatother
\usepackage{color, colortbl}
\definecolor{LRed}{rgb}{1,.8,.8}
\definecolor{LGreen}{rgb}{.8,1,.8}
\definecolor{LBlue}{rgb}{8,39,142}
\renewcommand{\rmdefault}{ptm}
\setlength{\topmargin}{-3.5cm}
\begin{document}
\begin{center}
\vspace{-2cm}
{\scalefont{3}Trainingszeiten"""
tex_code +=r"""}\\\scalefont{2}\end{center}"""
#tex_code +=r"""\begin{table}[h]"""
tex_code +=r"""\centering"""
tex_code +=r"""\begin{tabular}{|L{6cm}|L{5.5cm}|C{4cm}|L{13cm}|}"""
tex_code +=r"""\hline """
tex_code +=r"""Mannschaft. & Tag &Uhrzeit& Halle\\"""
tex_code +=r"""\hline """
for x in range(len(headers)):
#print(headers[x])
for y in range(3):
if (x % 2) == 0:
tex_code +=r"""\rowcolor{gray!25}"""
else:
tex_code +=r"""\rowcolor{white}"""
if y == 0:
tex_code +=r"""{}&{}&{}&{}\\""".format(headers[x],dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])
else:
try:
tex_code +=r"""{}&{}&{}&{}\\""".format(' ',dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])
except:
continue
tex_code +=r"""\hline """
tex_code+=r"""\end{tabular}"""
#tex_code+=r"""\end{table}"""
tex_code+=r"""\end{document}"""
#print(tex_code)
tex_file = "training.tex"
with open(tex_file, "w") as out_file:
out_file.write(tex_code)
print("done.")
os.system("/usr/local/texlive/2023/bin/universal-darwin/pdflatex training.tex")
os.system("rm -f *.log *.aux")Out [3]:
done.
sh: /usr/local/TeX/bin/x86_64-darwin/pdflatex: No such file or directory
32512
In [ ]:
#print(headers)
parse=re.compile(r"([mw])\S*\s(\w\-\w*)\s(\d?)|(\d\.)\s(\w*)|([mw])\S*\s(\w\-\w*)|^(\w\-\w*)|^(\w*)\Z")
headers2 =[]
for head in headers:
name=parse.findall(head)
headers2.append(name)
#print(headers2)
mails=[]
for head in headers2:
res=''
try:
for x in head[0]:
res+=str(x)
except:
continue
if res=='Damen':
res='1.Damen'
#res+="@esg-handball.de"
mails.append(res)
print(mails)
In [ ]:
from datetime import datetime
day_of_year = datetime.now().timetuple().tm_yday
year=datetime.now().timetuple().tm_year
#print(day_of_year)
#print(year)
if day_of_year<182:
add_off=-1
else:
add_off=0
Offsets_2nd=[18, 16,14,12,10,8,6]
Shift=[-1,-1,-1,-1,-1,-1,-2]
Jahrgänge=[]
for x in range(len(Offsets_2nd)):
Jahrgänge.append(str(year-Offsets_2nd[x]+add_off)+'-'+str(year-(Offsets_2nd[x]+Shift[x]+add_off)))
Jugenden=['A-Jugend','B-Jugend', 'C-Jugend', 'D-Jugend', 'E-Jugend', 'F-Jugend','Minis']
Mannschaften = [[0 for x in range(2)] for y in range(7)]
for i in range(len(Jugenden)):
Mannschaften[i][1]=Jahrgänge[i]
Mannschaften[i][0]=Jugenden[i]
#print(Mannschaften)
Teams = [[0 for x in range(3)] for y in range(len(mails))]
for i in range(len(mails)):
Teams[i][0]=mails[i]
for x in range(len(Jugenden)):
if Jugenden[x][0] in str(Teams[i][0]):
Teams[i][1] = Mannschaften[x][1]
Teams[i][2] = Mannschaften[x][0]
break
print(Teams)In [ ]:
for x in range(len(headers)):
for y in range(3):
try:
Teams[x][2].append(dates[x][y*4], dates[x][(y*4)+1], dates[x][(y*4)+2])
except:
continue
print(Teams)