NBA_03_Internet_Datenstrukturen_Werkzeuge

(c) 2019/2020 Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever

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 Wetterdienst
am 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