Verfasst von: bletra | 14. September 2010

Python: Schöne Suppe

Python ist eine schlanke Skriptsprache mit vielen Klassenbibliotheken. Viele Prototypen, Transformationen (Datenschema X in Datenschema Y überführen) oder auch Webapplikationen (z.B. das Framework Django) werden immer häufiger in Python erstellt. Googles App Engine unterstützte bis April 2009 nur Python. Nach einem Artikel von heise, verbreitet sich Python zunehmend. Die einfache Integration mit Java (Jython) oder .Net (IronPython) trägt ihren Teil zur Verbreitung bei.

Ich bin im Rahmen meiner geplanten Veranstaltung ‚Foundations of Language Technology‚ auf Python gestoßen. Und als ich – unabhängig von dieser Vorlesung – ein Skript zum Auslesen von Daten aus einem proprietären Format nach Excel brauchte, kam Python zum Einsatz. Mit Python kann man sehr einfach HTML-Seiten verarbeiten. Zugriff auf die URL, eine Zeile, HTML einlesen, eine Zeile, von HTML-Tags bereinigen, eine Zeile, alle Tags/Tabellen/… herausfiltern, eine Zeile … Aber der Reihe nach.

In diesem Artikel möchte ich zwei Klassenbibliotheken anschneiden: NLTK (Sprachverarbeitung) und BeatifulSoup (HTML-Verarbeitung).

Hier die zwei Zeilen, um eine HTML-Seite für die Sprachverarbeitung oder andere Anwendungen, die plain text bevorzugen, zur Verfügung zu stellen:

from urllib import urlopen
import nltk
url = "https://bletra.wordpress.com"
html = urlopen(url).read()
raw = nltk.clean_html(html)

Und wer auf der HTML-Struktur navigieren möchte/muss, um Informationen aus der Seite herauszuziehen, verwendet BeautifulSoup:

from urllib import urlopen
from BeautifulSoup import BeautifulSoup
url = "https://bletra.wordpress.com"
html = urlopen(url).read()
soup = BeautifulSoup(html)
tables = soup.findAll('table')
for table in tables:
...
for row in table.findAll('tr'):
     ...

Über die Objekte von BeautifulSoup kann man einfach navigieren, sie mit str(…) in einen String verwandeln und vieles mehr. Mit wenigen Zeilen Code lässt sich viel erreichen — die Fehlersuche ist dagegen mühsamer 😉

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: