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