Diskussion:Python-Programmierung: Pywikipediabot

Aus Wikibooks

Wechseln zu: Navigation, Suche

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)

Persönliche Werkzeuge