NBA_03_Internet_Datenstrukturen_Werkzeuge¶
(c) 2024 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
Internet¶
urllib¶
In [1]:
from urllib.request import urlopen
with urlopen("http://tycho.usno.navy.mil/cgi-bin/timer.pl") as response:
for line in response:
print(line)
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final"//EN>\n' b'<html>\n' b'<body>\n' b'<TITLE>What time is it?</TITLE>\n' b'<H2> US Naval Observatory Master Clock Time</H2> <H3><PRE>\n' b'<BR>May. 22, 15:09:03 UTC\t\tUniversal Time\n' b'<BR>May. 22, 11:09:03 AM EDT\t\tEastern Time\n' b'<BR>May. 22, 10:09:03 AM CDT\t\tCentral Time\n' b'<BR>May. 22, 09:09:03 AM MDT\t\tMountain Time\n' b'<BR>May. 22, 08:09:03 AM PDT\t\tPacific Time\n' b'<BR>May. 22, 07:09:03 AM AKDT\tAlaska Time\n' b'<BR>May. 22, 05:09:03 AM HAST\tHawaii-Aleutian Time\n' b'</PRE></H3><P><A HREF="http://www.usno.navy.mil"> US Naval Observatory</A>\n' b'\n' b'</body></html>\n' b'\n'
In [2]:
from urllib.request import urlopen
with urlopen("http://tycho.usno.navy.mil/cgi-bin/timer.pl") as response:
for line in response:
line = line.decode('utf-8')
if 'EST' in line or 'EDT' in line:
print(line)
<BR>May. 22, 11:09:04 AM EDT Eastern Time
In [3]:
from urllib.request import urlopen
with urlopen('http://www.ptb.de/cms/de/ptb/fachabteilungen/abt4/fb-44/ag-441/darstellung-der-gesetzlichen-zeit/zeitzonen.html') as response:
for line in response:
line = line.decode('utf-8')
if 'Land' in line and 'Lokalzeit' in line and 'Sommerzeit' in line:
for cell in line.split('<ul>'):
if 'Deutschland' in cell:
print(cell)
<li>Deutschland </li></ul></td><td bgcolor="#ffffcc" valign="top" width="133">UTC + 1 Std.</td><td align="center" bgcolor="#ffffcc" valign="top" width="182">EU</td></tr><tr bgcolor="#ffff99"><td bgcolor="#cccccc" valign="top" width="247">
In [4]:
from urllib.request import urlopen
with urlopen('http://www.dwd.de/DE/wetter/warnungen_aktuell/warnlagebericht/bayern/warnlage_bay_node.html') as dwdresponse:
marker = False
warnbericht = ""
for line in dwdresponse:
line = line.decode('utf-8')
if '<div id="wettertext">' in line:
marker = True
if marker and '</div>' in line:
marker = False
if marker:
warnbericht += line
from IPython.display import HTML
HTML(warnbericht)
Out[4]:
WARNLAGEBERICHT für Bayern
ausgegeben vom Deutschen Wetterdienstam Montag, 22.05.2017, 14:30 Uhr
In den Alpen geringes Gewitterrisiko. In Südbayern viel, im Norden etwas Sonne.
Entwicklung der WETTER- und WARNLAGE für die nächsten 24 Stunden
bis Dienstag, 23.05.2017, 14:30 Uhr:
Unter dem Einfluss eines Hochdruckdruckgebiets mit Schwerpunkt über dem Norden Deutschlands erwärmt sich die Luftmasse zunehmend. Heute Nachmittag und abends besteht in den Bayerischen Alpen eine geringe Wahrscheinlichkeit für einzelne GEWITTER, die STARKREGEN bis 20 l/qm in einer Stunde bringen können. Für die Nacht zum Dienstag sind keine Warnungen notwendig. Am Dienstag sind Gewitter in Südbayern sehr unwahrscheinlich, in Nordbayern auszuschließen.
Nächste Aktualisierung: spätestens Montag, 22.05.2017, 20:30 Uhr
Deutscher Wetterdienst, RWB München, Schwienbacher
smtplib¶
In [5]:
import smtplib
server = smtplib.SMTP('smtp.hs-augsburg.de')
In [6]:
server.sendmail('nik.klever@hs-augsburg.de', ['nik.klever@hs-augsburg.de','nik@klever.name'], """To: nik.klever@hs-augsburg.de
From: doris.rieder@hs-augsburg.de
Subject: Pruefungstermine
Bitte noch die Pruefungstermine bekanntgeben.
""")
Out[6]:
{}
In [7]:
server.quit()
Out[7]:
(221, b'2.0.0 Bye')
Datenkompression¶
zlib¶
In [8]:
import zlib
s = b"Fischer's Fritze fischt frische Fische, frische Fische fischt Fischer's Fritze"
len(s)
Out[8]:
78
In [9]:
t = zlib.compress(s)
len(t)
Out[9]:
45
In [10]:
t
Out[10]:
b'x\x9cs\xcb,N\xceH-R/Vp+\xca,\xa9JUH\x03\t\x94(\xa4\x15\x81%\x14\xdc\xc0\x94\x0e\x1a\x1f\xa6\xca\rM7\x00`,\x1c_'
In [11]:
zlib.decompress(t)
Out[11]:
b"Fischer's Fritze fischt frische Fische, frische Fische fischt Fischer's Fritze"
In [12]:
s = "Fischer's Fritze fischt frische Fische, frische Fische fischt Fischer's Fritze"
In [13]:
t = zlib.compress(s)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-13-028141843ac7> in <module>() ----> 1 t = zlib.compress(s) TypeError: a bytes-like object is required, not 'str'
In [14]:
bs = s.encode()
t = zlib.compress(bs)
In [15]:
t
Out[15]:
b'x\x9cs\xcb,N\xceH-R/Vp+\xca,\xa9JUH\x03\t\x94(\xa4\x15\x81%\x14\xdc\xc0\x94\x0e\x1a\x1f\xa6\xca\rM7\x00`,\x1c_'
In [16]:
bs = bytes(s, 'UTF-8')
t = zlib.compress(bs)
t
Out[16]:
b'x\x9cs\xcb,N\xceH-R/Vp+\xca,\xa9JUH\x03\t\x94(\xa4\x15\x81%\x14\xdc\xc0\x94\x0e\x1a\x1f\xa6\xca\rM7\x00`,\x1c_'
tarfile¶
In [17]:
import tarfile
import glob
with tarfile.open("beispiel.tar.gz", "w:gz") as tar:
for name in glob.glob("*"):
tar.add(name)
In [19]:
with tarfile.open("beispiel.tar.gz", "r:gz") as tar:
for tarinfo in tar:
print(tarinfo.name)
Test Test/Test.ipynb Internet und Datenstrukturen Werkzeuge.ipynb test.py Betriebssystem Werkzeuge.ipynb String Mathematik Werkzeuge.ipynb