58. WikiTreffen
Zeit: Mittwoch, 02.06.04 ab 18:00 h
Ort: im Lehrstuhl Bürgerliches Recht, Rechtstheorie und Rechtinformatik (Uni Saarbrücken).
Sonderveranstaltung "Wiki von innen" Teil 2 und Einführung in Python: Makro-Programmierung
im Rahmen der Veranstaltung "EDV-Instrumente für die juristische Arbeit" (Prof. Herberger), siehe auch Teil 1: WikiTreffen/2004-05-19
Python
Homepage: http://www.python.org/
Wikipedia: Python_%28Programmiersprache%29
PythonWiki (englisch) und PythonWiki (deutsch)
Makro
/usr/local/moin/MoinMoin/macro
Unsere Programmier-Versuche
>>> import urllib
>>> print urllib.urlopen("http://www.jurawiki.de").read()
>>> datei = open("jurawiki.html", "wa")
>>> datei.write(seite)
>>> url = "http://de.wikipedia.org/wiki/Prinz_Eugen_%28Schiff%29"
>>> seite = urllib.urlopen(url).read()
>>> import re
>>> regexp = re.compile(r"(?P<titel><h1.*</h1>)")
>>> result = regexp.search(seite)
>>> test = result.group('titel')
Traceback (most recent call last):
File "<pyshell#29>", line 1, in -toplevel-
test = result.group('titel')
AttributeError: 'NoneType' object has no attribute 'group'
Nachtrag
So sollte das funktionieren:
>>> ipmport urrlib, re >>> url = "http://de.wikipedia.org/wiki/Prinz_Eugen_%28Schiff%29"
Zunächst einen "unverdächtigen" User-Agent setzen (auf "Python-urllib/1.15" z.B. reagiert Wikipedia mit einer Fehlerseite).
>>> urllib.URLopener.version ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
>>> seite = urllib.urlopen(url).read()
>>> regexp = re.compile(r"<h1.*>(?P<titel>.*)</h1>")
>>> result = regexp.search(seite)
>>> print result.group("titel")
Prinz Eugen (Schiff)Und jetzt den ersten Absatz:
>>> regexp = re.compile(r"<p>(?P<text>.*)</p>", re.DOTALL)
Das Flag DOTALL soll bewirken, dass auch Zeilenumbrüche aktzeptiert werden.
>>> result = regexp.search(seite)
>>> print result.group("text")Offenbar wird so alles zwischen dem ersten <p> und dem letzten </p> geliefert, d.h. man bekommt den ganzen Artikel. Auch nicht schlecht
OffeneFrage: Wie bekommt man nur den ersten Absatz?
siehe auch KooperationMitWikipedia/WikipediaMakro
Teil 1: WikiTreffen/2004-05-19
vorheriges WikiTreffen/2004-05-26
nächstes WikiTreffen/2004-06-09