Diskussion:Python-Programmierung: Pywikipediabot
Aus Wikibooks
Diese Anleitung stammt von der Seite http://www.produnis.de/MacGyver/index.php/Pywikipediabot , einem MediaWiki-Projekt unter GFDL achso, ist das hier überhaupt die richtige stelle für derlei "Anleitungen" ?!?!
- Nein ich denke nicht, sowas sollte eigentlich hier nicht sein. --Leonidas 5. Jul 2005 15:44 (UTC)
wäre gut, wenn dabei stehen würde, für welche Version des Wikibots diese Anleitung gilt (ich habe den Eindruck, die aktuelle Version snapshot-20050825.zip verhält sich etwas anders)
Inhaltsverzeichnis |
[Bearbeiten] Bot läuft nicht - Fehler bei Aufruf der login.py
Hallo,
ich versuche den Pywikipediabot bei mir zum Laufen zu kriegen, da ich die Inhalte als HTML extrahieren möchte. Da ich keine Erfahrungen mit Python habe, bin ich akribisch nach Anleitung vorgegangen. Jedoch läuft der Bot nicht und bei Aufruf der 'login.py' bekomme ich folgende Fehlermeldungen:
Traceback (most recent call last):
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\login.py", line 34, in -toplevel-
import wikipedia, config
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\wikipedia.py", line 2401, in -toplevel-
getSite()
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\wikipedia.py", line 2343, in getSite
_sites[key] = Site(code=code, fam=fam, user=user)
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\wikipedia.py", line 2138, in __init__
self.family = Family(fam)
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\wikipedia.py", line 2126, in Family
return myfamily.Family()
File "families\Media_Independent_Delivery_family.py", line 12, in __init__
namespaces = { 1: u'Diskussion',
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\family.py", line 463, in _addlang
self.langs[code] = location
AttributeError: Family instance has no attribute 'langs'
Wenn ich bei Aufruf der 'login.py' 'import wikipedia' weglasse, kommt nurnoch eine Fehlermeldung. Und zwar:
Traceback (most recent call last):
File "C:\Program Files\xampp2\xampp\htdocs\wiki\bot2\pywikipedia\login.py", line 165, in -toplevel- wikipedia.stopme()
NameError: name 'wikipedia' is not defined
Ich hoffe mir kann hier jemand weiterhelfen.
Gruß Tobias
Hatte den gleichen Fehler, das Skript schein irgendwie falsch, ich nutze das:
# -*- coding: utf-8 -*-
import family
# The meta family
class Family(family.Family):
name = 'TEST'
def __init__(self):
family.Family.__init__(self)
self.name = 'TEST' #Set the family name; this should be the same as in the filename.
self.langs = {
'de': 'localhost', #Put the hostname here.
}
self.namespaces[4] = {
'_default': u'MozillaWiki', #Specify the project namespace here. Other
} #namespaces will be set to MediaWiki default.
self.namespaces[5] = {
'_default': u'MozillaWiki talk',
}
def version(self, code):
return "1.9.2" #The MediaWiki version used. Not very important in most cases.
def path(self, code):
return '/wTEST/index.php'
--GunterS 13:28, 3. Mär. 2007 (CET)
[Bearbeiten] Diskussion PflegeWiki
Hi Ho... jemand hat im PflegeWiki die Anfrage gestellt, ob diese Seite hier gelöscht werden kann ?! --Produnis 19:03, 25. Okt 2005 (UTC)
Der komplette Artikel über den Bot? Wo kann man denn üblicherweise seine Fragen loswerden?
- An Produnis: Bis du der Initiator des Textes und ist der Text so jetzt fertig oder fast fertig? Ich hab keine Ahnung von Bots. Wenn an dem Text noch gearbeitet wird, gibt es natürlich keinen Grund zur Löschung. Da aber zB auf die Frage zur Version weiter oben nicht reagiert wurde, sieht das hier eher nach einer verlassenen Ruine aus. In einem Buch über die Programmiersprache Python hat der Text aber IMO nicht viel verloren, außer man erläutert am dem Programm exemplarisch die Leistungsfähigkeit der Sprache. Also wenn Weiterentwicklung des Textes, dann eher als eigenes Buch. jan
-
- hallo Jan, ja, der Text ist von mir. Ich hab ihn "damals" im MacGyver-Wiki angefangen, und mich dann hier auf die Books verlagert, weil ich dachte, dass ich hier noch "Mitstreiter" finden würde. Ich persönlich hatte nämlich auch gar keinen Plan vom Pywikipediabot, wollte ihn aber für unser PflegeWiki nutzen. Daher hab ich mich mal ein Wochenende drangesetzt, hab alles ausprobiert, und meine Notizen hier hinterlegt... (hat mir schon ein paar mal geholfen den BOT wieder hochzufahren..bzw. um die Funktionen nachzuschlagen.). So.. nun zu deinen Fragen...: da ich in Sachen Bot selber ein Amateur bin, kann ich auch nichts mehr zu diesem Artikel hinzufügen. Ich dachte, es sei ein gutes Grundgerüst für BOT-Auskenner und -Ausprobierer.... von der Wikipedia kenn ich das so, dass mehrere Leuts an einem Artikel schreiben (muss aber auch zugeben, dass ich mich diesbezüglich hier in den Books noch nicht schlau gemacht hab)... Nunja... lange Rede: ich hab kein Problem damit, wenn der Artikel gelöscht wird... hab mir soeben eine Kopie gezogen (zum Nachschlagen...)... wenns hier nicht reinpasst: wegdamit... viele Grüße, --Produnis 15:31, 26. Okt 2005 (UTC)
[Bearbeiten] Welche Kommandozeile??
http://de.wikibooks.org/wiki/Python-Programmierung:_Pywikipediabot#Benutzung_des_Bots
In welche Mommandozeile muss ich das eingeben?? --Chops 08:23, 4. Jul 2006 (UTC)
[Bearbeiten] getaddrinfo failed
Hallo! Könnte mir vielleicht jemand sagen, wie ich den pywikipedia-Bot auf meinem Wiki (MartialArtsWiki) zum Laufen kriege? Nachdem ich den Login-Befehl gegeben habe, laufen einige Zeilen und dann erscheint das:
socket.gaierror: (11001, 'getaddrinfo failed')
Da ich von Python keine Ahnung habe, und die ganze Zeit nach Anleitung vorgegangen bin, weiß ich mit dieser Meldung nichts anzufangen. Weiß jemand, was diese Fehlermeldung bedeutet?
Gruß Olli
- Das gleiche Problem habe ich auch. Das gleiche passiert übrigens, wenn man ein falsches Passwort eingibt.--84.60.196.175 20:47, 2. Mär. 2007 (CET)
Nachtrag: die genauen Zeilen sind:
File "C:\pywikipedia\login.py", line 232 in <module>
main()
File "C:\pywikipedia\login.py", line 228, in main
loginMan.login()
File "C:\pywikipedia\login.py", line 181 in login
cookiedata = self.getCookie()
File "C:\pywikipedia\login.py", line 132 in getCookie
conn.request("POST", pagename, data, headers)
File "C:\Python25\lib\httplib.py", line 862, in request
self._send_request(method, url, body,headers)
File "C:\Python25\lib\httplib.py", line 885, in _send_request
self.endheaders()
File "C:\Python25\lib\httplib.py", line 856, in endheaders,
self._end_output()
File "C:\Python25\lib\httplib.py", line 728 in _send_output
self.send(msg)
File "C:\Python25\lib\httplib.py", line 695, in send
self.connect()
File "C:\Python25\lib\httplib.py", line 663, in connect
socket.SOCK_STREAM):
socket.gaierror: (11001, 'getaddrinfo failed')
C:\pywikipedia ist der Botordner, C:\Python25 der Python-Ordner.
[Bearbeiten] Regex Befehl
Hallo Leute, eine kleine Frage von einem unbedarften User, der für sein eigenes Wiki den Pywikipediabot einsetzt. Wir wollten diverse Sachen ersetzen, bspw Jahreszahlen. Unser Ziel ist es Jahreszahlen wie bspw 2000, 2001, 2002 in Links zu verwandeln. Da wir dutzende Jahreszahlen haben, wäre es für uns einfacher, wenn wir das ganze mit Platzhaltern machen können. Hierfür ist ja scheinbar auch der Regex Befehl gedacht. Doch leider funktioniert er nicht so, wie wir uns das gerne vorstellen.
Probiert haben wir es mit 200(0-9) und [[200(0-9)]], was nicht klappte.
Bei Verwendung von \1 oder \\1 kam direkt ein Abbruch.
Für euch sicherlich ein klacks, aber wie kann man das am besten lösen? Gibt es dafür eine recht einfach geschriebene Anleitung/Erklärung? Weiterführend wollen wir nämlich bspw auch Datumsfelder verlinken, wie bspw 1. Januar, 12. Januar, 1. Februar etc. Da wäre das Arbeiten mit Platzhaltern ja auch recht komfortabel.
Vielen Dank im vorraus --84.187.13.123 14:13, 6. Aug. 2007 (CEST)
[Bearbeiten] Unverständlich
Die Anleitung ist völlig unverständlich und komplizierter geschrieben als nötig. --85.176.155.3 16:26, 1. Jan. 2008 (CET)
[Bearbeiten] Fehler
Traceback (most recent call last):
File "C:\BOT\pywikipedia\login.py", line 277, in <module>
main()
File "C:\BOT\pywikipedia\login.py", line 273, in main
loginMan.login()
File "C:\BOT\pywikipedia\login.py", line 225, in login
cookiedata = self.getCookie()
File "C:\BOT\pywikipedia\login.py", line 144, in getCookie
response, data = self.site.postForm(address, predata, useCookie=False)
File "C:\BOT\pywikipedia\wikipedia.py", line 3137, in postForm
return self.postData(address, data, sysop = sysop, useCookie=useCookie)
File "C:\BOT\pywikipedia\wikipedia.py", line 3160, in postData
conn.endheaders()
File "E:\Python25\lib\httplib.py", line 856, in endheaders
self._send_output()
File "E:\Python25\lib\httplib.py", line 728, in _send_output
self.send(msg)
File "E:\Python25\lib\httplib.py", line 695, in send
self.connect()
File "E:\Python25\lib\httplib.py", line 663, in connect
socket.SOCK_STREAM):
socket.gaierror: (11001, 'getaddrinfo failed')
Was mach ich falsch? 80.139.81.96
[Bearbeiten] Bot-Ordner
Kann mir mal bitte jemand sagen, was der Bot-Ordner ist? --84.62.196.17 21:32, 28. Jun. 2008 (CEST)
[Bearbeiten] python replace.py funktioniert nicht
Der Bot funktioniert bei mir einwandfrei - bzw. funktionierte. Ich startete den Bot heute das erste mal auf meinen Mac. Als ich eingab "python replace.py" fragte er mich, korrekterweise, nach den beiden Replaces. Als ich danach "enter" klickte, machte er nicht die Änderungen, sondern zeigte nur die Hilfe-Übersicht über replace.py. Wieso funktioniert das nicht? --Item 18:54, 9. Nov. 2008 (CET)
[Bearbeiten] https?
Hi allerseits,
läuft der Bot auch bei https? merci & greetz vanGore 16:00, 24. Sep. 2009 (CEST)