Help:Gebruik van bots

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

In other languages: de - en - fr - hu - it - ja - ko - nl - pl - pt - ru - sv - zh-hant


Overzicht hulppagina's
Wikipedia-terminologie

Met een bot kunnen lastige taken makkelijker worden uitgevoerd. Sommige taken geheel automatisch, andere half-automatisch. Om op de Nederlandstalige Wikipedia een bot te gebruiken is wel enige software nodig. Kennis van programmeren is nuttig maar niet noodzakelijk.

Er zijn twee soorten bots: deze mét en deze zonder botstatus, ook wel botbit genoemd. Een botbit maakt de wijzigingen van die bot in de eerste plaats onzichtbaar op de recente wijzigingen. Verzoeken voor een botbitje kunnen worden geplaatst op Wikipedia:Aanmelding botgebruikers. Als je begint met het gebruik van een bot, is het niet noodzakelijk om meteen een botstatus aan te vragen. Het is aan te raden om eerst te leren omgaan met je bot. Let wel: je mag dan slechts één wijziging per minuut doen met je bot.

Op de Nederlandstalige Wikipedia is het gebruik van bots weinig aan regels gebonden. Let evenwel op wanneer u bots gebruikt op anderstalige Wikipedia's, bijvoorbeeld om interwiki-links te maken op de Engelstalige Wikipedia: daar gelden andere richtlijnen. Deze zijn ingevoerd omdat men daar het aantal bots probeert te beperken, omdat te veel bots het systeem kunnen vertragen.

Er draaien reeds veel mensen een bot op de Nederlandstalige Wikipedia (zie hier), zodat de behoefte aan nieuwe botgebruikers niet erg groot is. Voor het succesvol draaien van een bot (dus zonder fouten) is een goede kennis van Wikipedia noodzakelijk. Een ervaring van 3 maanden met veel dagelijkse edits kan als richtlijn dienen. De meeste zaken (interwiki's, doorverwijspagina's) worden al regelmatig gecontroleerd. Versterking kan op zich geen kwaad, maar bedenk dat het ook mogelijk is om op andere manieren meer aan de Nederlandstalige Wikipedia bij te dragen (kijk voor ideeën in het gebruikersportaal).

Het inzetten van een aangemelde bot om op grote schaal nieuwe artikelen te genereren zorgt ervoor dat de nieuwe artikelen niet in de recente wijzigingen te zien zijn. Het is daarom gewenst dit botproces onder de normale gebruikersnaam te doen zodat de nieuw aangemaakte artikelen direct te zien zijn en een bot tijdig kan worden gestopt, en vooraf toestemming vragen aan de gemeenschap op Wikipedia:Verzoekpagina botimport nieuwe artikelen.

Beginnen met een bot[bewerken]

Om te beginnen met een bot moet er eerst software geïnstalleerd worden. Als dat gedaan is maken we een nieuwe gebruiker aan voor onze bot en voeren we nog een paar formaliteiten uit.

Installeren software[bewerken]

Veelgebruikte software voor een Wikipedia-bot is pywikipedia. Daarover gaat de komende handleiding. Er wordt vanuit gegaan dat u Windows of Linux gebruikt, anders kunt u verderop kijken voor instructies. Om een pywikipedia-bot te kunnen gebruiken moet u de volgende stappen volgen:

  1. Maak voor het gemak een nieuwe map voor de bot, bijvoorbeeld C:\Bot (Windows) of ~/pywikipedia (Linux)
  2. Enkel Windows: Installeer vervolgens de programmeertaal Python, dat te vinden is op Python.org, instructies hiervoor vindt u op de website van Python. Dit kan in de door het installatieprogramma aangegeven map, maar ook bijvoorbeeld in de map C:\Bot\Python. Deze programmeertaal is op Linux meestal standaard aanwezig.
  3. Installeer daarna de pywikipedia-code in bijvoorbeeld C:\Bot\Pywikipedia (Windows) of ~/pywikipedia (Linux).
    • Windows, optie 1: U kunt het pywikipedia-pakket downloaden van PyWikipediaBot en dit gedownloade tar.gz-compressie-bestand uitpakken met datacompressiesoftware (meestal standaard aanwezig).
    • Windows, optie 2: De pywikipedia-code, die te vinden is op http://svn.mediawiki.org/viewvc/pywikipedia/, is te downloaden via een SVN-programma, hiervoor is TortoiseSVN te gebruiken. Via SVN beschikt u altijd over de recentste versie, via de site zelf kan dit een dag achterlopen en is het bijhouden moeilijker. U wordt aangeraden om SVN te gebruiken, de meest recente versie is meteen via een SVN-programma te downloaden van wikimedia.org. Linux is meestal standaard uitgerust met SVN via de terminal.
    • Linux: Dit doet u door een terminal te starten en svn checkout http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia pywikipedia op te geven vanuit uw homedirectory.

Bijwerken software[bewerken]

Windows

Download een nieuwe nightly of werk het programma bij met uw SVN-programma.

Linux

Voer svn update uit vanuit ~/pywikipedia.

Aanmaken gebruikersprofiel[bewerken]

  • Maak via Speciaal:Userlogin een gebruikersnaam aan voor uw bot. Bij voorkeur een naam waaruit blijkt dat het gaat om een bot, bijvoorbeeld BotGebruikersnaam.
  • Maak een tekstbestand aan met de naam "user-config.py" in de map met de pywikipedia-software en plaats de onderstaande tekst, waar "BotGebruikersnaam" vervangen is door de gebruikersnaam van je bot.
usernames['wikipedia']['nl']='BotGebruikersnaam'
mylang='nl'

Indien uw bot (nog) geen botbitje heeft, mag de bot maximaal 1 keer per minuut een wijziging aanbrengen. Plaats hiervoor ook onderstaande regel in "user-config.py":

put_throttle = 60

Eventueel aangevuld met onderstaande zin, indien ook pydot wordt gebruikt voor het laten zien van problemen met interwiki in een afbeelding

interwiki_graph = True
  • Nu moet de bot inloggen.
    • Windows: Start een DOS-scherm (vanuit Windows (via "Start", "Run..." en typ cmd) of een ander programma dat deze mogelijkheid biedt) en ga naar de map waar de code van pywikipedia in staat. Dat doet u door middel van het commando cd, en wel als volgt:
cd C:\Bot\Pywikipedia
    • Windows: Nu is het zaak onze bot in te loggen. Dit hoeft doorgaans maar eenmalig en voert u eenvoudig uit door het daartoe geschreven Python-script uit te voeren:
login.py
    • Linux: Start een terminal en ga naar ~/pywikipedia.
    • Linux: Voer python login.py uit.
  • Er wordt nu gevraagd om de naam en het gekozen wachtwoord van het gebruikersprofiel van de bot. Nu bent u ingelogd op de Nederlandstalige Wikipedia.
  • Als dit niet lukt kan je altijd login.py -all -force -pass:xxx proberen invoegen, waar xxx je wachtwoord is. (Veiliger is login.py -all -pass, dan wordt er om je password gevraagd maar is niet zichtbaar op het scherm.

Formaliteiten[bewerken]

  • Plaats op de gebruikerspagina van je bot ook een verwijzing naar jouw gebruikerspagina. Je kan dit gemakkelijk doen door {{Bot|jouw gebruikersnaam}} te plaatsen. Indien gewenst kan er ook een stopknop geplaatst worden met het sjabloon {{Noodrem}}.

Je bot is nu geïnstalleerd en klaar voor gebruik.

Gebruik[bewerken]

Uitleg enkel voor Windows. Herhaal voor Linux dezelfde stappen als om in te loggen, maar voer een ander script uit. Open wederom een DOS-scherm, bijvoorbeeld met cmd.exe, en ga naar de map met de pywikipedia-code:

cd C:\Bot\Pywikipedia

Nu kunt u een script uitvoeren om uw bot aan het werk te zetten. De verschillende scripts hebben verschillende functies, die vaak bovenaan het script kort worden besproken. U kunt deze (Engelstalige) omschrijving krijgen door de naam van het script plus de tekst -help in te voeren (bijvoorbeeld interwiki.py -help). Hieronder worden enkele kort uitgelegd.

solve_disambiguation.py[bewerken]

Met deze functie kunnen doorverwijspagina's worden afgehandeld. Er wordt voor gezorgd dat links in artikelen direct naar het juiste artikel wijzen, en niet via een doorverwijspagina.

Type het volgende in:

solve_disambiguation.py -optie xxx
  • waarbij xxx de naam is van de doorverwijspagina die u wilt afhandelen.
  • volgende opties kunnen worden meegegeven:
  • -pos:XXXX, hiermee wordt een alternatieve doorverwijsoptie meegegeven
  • -min:n (met n een getal) (voornamelijk handig in combinatie met -start) zorgt dat alleen doorverwijspagina's met minimaal n links worden bewerkt
  • -main zorgt dat alleen links vanaf de hoofdnaamruimte verwerkt worden

In plaats van een paginanaam kunt u ook -start:xxx opgeven; in dat geval zal de bot door de lijst van doorverwijspagina's lopen, in alfabetische volgorde vanaf de aangegeven waarde.

De bot zal even zoeken en wellicht een aantal pagina's vinden die naar de doorverwijspagina verwijzen. Het is nu de taak van de botbestuurder om de juiste betekenis toe te kennen aan de doorverwijzingsterm in de gevonden artikelen. Deze functie is half-automatisch, en na elke aangepaste pagina kan de volgende pagina worden voorzien van de juiste doorverwijsbetekenis.

Per gevonden verwijzing zijn de volgende codes beschikbaar:

Een getal: wijzig de link zodanig dat het verwijst naar de pagina die met het getal correspondeert.
r+x (waarbij x een getal is): wijzig zowel de link als de tekst van de link op die wijze.
s: wijzig deze link niet.
n: wijzig deze hele pagina niet.
u: maak van deze tekst een niet-linkende tekst.
m: toon een groter deel van de tekst van de pagina, zodat u meer gegevens heeft om te beslissen. (Dit kan herhaaldelijk gebruikt worden, de hoeveelheid tekst wordt elke keer bij benadering verdubbeld.)
l: geef de lijst van mogelijke links nog een keer.
a: geef een nieuwe mogelijke link op.
e: ga over tot handmatige bewerking van de pagina (u krijgt dan iets dat vergelijkbaar is met het wijzig-scherm in uw browser).
q: beëindig het programma.

category.py[bewerken]

Met deze functie kunnen categorieën worden aangepast.

Met

category.py add 

kunnen categorieën automatisch worden toegevoegd aan een lijst van artikelen.

Met

category.py move

kunnen categorieën automatisch worden verplaatst en hernoemd. Dit is vooral makkelijk wanneer er een spelfout in de categorienaam staat.

Type

category.py

in voor een complete lijst met alle opties.

redirect.py[bewerken]

redirect.py actie [-argument]

actie:

  • double - lost de problemen met redirects op die naar andere redirects verwijzen
  • broken - deze actie verwijdert redirects die naar niet-bestaande pagina's wijzen. Dit kan alleen door moderators worden gedaan.

-argument:

  • xml - haal informatie van een lokale XML-dump (http://download.wikimedia.org), of met "-xml:filename.xml" van een lokale, op de harde schijf van de computer, opgeslagen XML-dump. Zonder dit argument zal de informatie van een speciale pagina worden gehaald.

replace.py[bewerken]

Replace.py is uitstekend geschikt om veel gemaakte taalfouten te verbeteren. Tevens is het makkelijk als binnen een file veel keer dezelfde fout is gemaakt en je bijvoorbeeld 10 keer dezelfde benaming van een vlag wilt veranderen naar de nieuwe naam.

Voor de taalfouten is het noodzakelijk dat je een recente xml-dump gebruikt. Hoe daaraan te komen vindt men hieronder bij #Dumpfile.

Een aantal voorbeelden van een syntaxis:

  • replace.py -xml:pages_current.xml -namespace:0 "produkt" "product"
  • replace.py -cat:Belarus "Belarus" "Wit-Rusland"

De eerste "tekst" (de foute) is de tekst die vervangen wordt door de tweede "tekst".

De volgende commando's worden gegeven om de plaats aan te geven waar de bot moet werken (je moet 1 van deze 4 kiezen):

  • -xml = Haal de informatie uit de lokaal opgeslagen sqldump, aldus: "-xml:filenaam" - bijvoorbeeld -xml:pages_current.xml.
  • -file = Bewerk een aantal pagina's dat gegeven is in een lokale tekstfile, aldus: "-file:filenaam". De robot leest elke [[wiki link]] aangegeven in deze file.
  • -cat = Bewerk alle pagina's die in een bepaalde categorie worden opgevoerd, aldus: "-cat:categoryname".
  • -page = Bewerk een enkel artikel, aldus: "-page:artikelnaam". Als je deze parameter meerdere keren ingeeft dan kan de bot in 1 keer meerdere pagina's afhandelen.

De volgende opties kunnen meegegeven worden:

  • -regex = staat voor regular expressions. Als dit niet in de syntaxis wordt opgenomen wordt alleen tekst gelezen.
  • -except:XYZ - Artikelen met XYZ moeten niet veranderd worden. Hierbij is XYZ een reguliere uitdrukking. XYZ geldt niet voor titels van artikelen, alleen voor tekst binnen artikelen.
  • -fix:XYZ - een van de voorgedefinieerde taken uitvoeren, bijvoorbeeld HTML-tags naar wiki-syntaxis omzetten.
  • -namespace:n - werkt alleen met een xmldump, 0 staat voor de artikelen (mag meerdere malen worden opgenomen om meerdere namespaces te selecteren).
  • -always - niet navragen of de verandering moet worden uitgevoerd maar altijd uitvoeren.

Opmerking: wanneer men Xxx -> xxx uitvoert, kan men die vervanging laten voorafgaan door een replace.py werkend de links naar Xxx (-ref:Xxx) waarbij je [[Xxx|xxx]] vervangt door [[xxx]]. Wanneer men dit immers niet doet, krijgt men na de vervanging [[xxx|xxx]] (twee keer hetzelfde dus). Dat heeft geen enkel nut, maakt de pagina langer en kan verwarrend werken ten opzichte van nieuwe gebruikers die dit zien in het 'bewerk'-venster en denken dat dit zo moet.

table2wiki.py[bewerken]

Voorbeeld van de eenvoudigste syntax:

  • table2wiki.py "artikelnaam"

Op deze manier wordt maar 1 artikel veranderd.

Het proces kan ook geautomatiseerd aflopen voor de gehele nl:wikipedia, daarvoor is een xml-dump nodig (zie bij replace.py hoe dat te verkrijgen is):

  • table2wiki.py -xml:20050406_cur_table.xml -lang:nl

-xml = naam van de xmldump en met -lang:nl geef je aan dat in de samenvatting tekst Nederlands wordt gebruikt.

Let op: elke verandering moet gecontroleerd worden. Deze bot is niet geheel vrij van bugs. Hij geeft weliswaar aan dat er mogelijke fouten zijn opgetreden, maar waakzaamheid is gewenst.

upload.py[bewerken]

Upload.py zorgt voor het uploaden van afbeeldingen. Er zijn drie mogelijkheden:

  • upload.py afbeelding.png
  • upload.py http://www.ergens.nl/afbeelding.png
  • upload.py -wiki:xx afbeelding.png

Het eerste commando uploadt een afbeelding dat momenteel op uw harde schijf staat, het tweede een afbeelding op een willekeurige URI, het derde een afbeelding op een van de andere Wikipedia's. Upload.py werkt niet wanneer uw bot niet is ingelogd (in tegenstelling tot de andere bots, die werken dan wel, maar doen hun wijzigingen anoniem, wat als niet netjes wordt beschouwd).

pagefromfile.py[bewerken]

pagefromfile.py zorgt voor het uploaden van nieuwe artikelen in een door de gebruiker voorbereid bestand.

Het (Utf) tekstbestand moet als volgt worden aangemaakt. Elk artikel moet worden afgebakend met een start-code (b.v. Start) en een eindcode (b.v End). Als artikel-titel wordt de tekst tussen ''' gebruikt. Er kunnen dus vele artikelen in 1 bestand staan.

Start '''Boek A''' is geschreven door schrijver B in 1990. End
Start '''Boek C''' is geschreven door schrijver B in 1990. End

Andere scripts[bewerken]

Er zijn nog een heel stel andere scripts. U kunt bekijken wat ze doen en hoe ze bediend moeten worden in het bovenste (Engels- in plaats van Pythontalige) deel van de broncode (of, als het dan nog niet duidelijk is, kunt u het André Engels vragen). Op het moment van schrijven zijn de volgende bots bruikbaar:

  • brackethttp
  • catall
  • category
  • check_extern
  • editarticle
  • getimages
  • imageharvest
  • imagetransfer
  • interwiki
  • login (één keer uitvoeren voor elke taal)
  • replace
  • solve_disambiguation
  • table2wiki
  • template
  • test
  • touchall
  • upload
  • warnfile
  • windows_chars

De volgende scripts zijn hulpprogramma's die bestanden aanmaken voor andere bots:

  • extract_names
  • extract_wikilinks
  • splitwarning

De volgende scripts gebruiken SQL-dumps:

  • find
  • redirect

De volgende scripts zijn verouderd, of zijn slechts voor een specifiek doel of een specifieke taal gemaakt en niet bruikbaar voor de Nederlandstalige Wikipedia:

  • copy_table
  • pagelist
  • saveHTML
  • sqldump
  • standardize_interwiki
  • us-states
  • WdT

De volgende Python-bestanden zijn geen bots, maar worden gebruikt door andere bots:

  • catlib
  • commons_family
  • config
  • date
  • family
  • gui
  • lib_images
  • logger
  • mediawiki_messages
  • meta_family
  • titletranslate
  • translator
  • unequal
  • WdTXMLParser
  • wikibooks_family
  • wikipedia
  • wikipedia_cd_fork_family
  • wikipedia_family
  • wikiquote_family
  • wikitravel_family
  • wiktionary
  • wiktionary_family
  • xmltest

Omgekeerde-redirectconstructie[bewerken]

Redirects die vallen in de categorie Redirect voor omgekeerde redirect constructie zijn daar bewust neergezet om duidelijk te maken dat in een hoofdbetekenisconstructie de betreffende link is gecontroleerd op correctheid. Het is de bedoeling dat deze redirects niet worden 'gefixt'. (zie Wikipedia:Stemlokaal/Modificatie Amsterdamconstructies)

Andere besturingssystemen[bewerken]

Hoewel het bovenstaande voor Windows is geschreven, gaat het bij Unix-gebaseerde besturingssystemen zoals Linux vrijwel hetzelfde. Enkele verschillen zijn:

  • Mac OS X:
    • Bij Mac OS X maakt het programma Teksteditor een pagina in RTF-formaat aan. Dit is niet bruikbaar voor een user-config.py bestand. Gebruik om user-config.py aan te maken een programma als BBEdit of TextMate.
    • Bij Mac OS X is python al geïnstalleerd, dus dat is niet meer nodig, en het aanroepen van een script gaat via de terminal (programma's → hulpprogramma's → terminal) en dan navigeer je naar de map, zoals uitgelegd. Het script voer je uit met het commando python script.py

Dumpfile[bewerken]

De laatste dumpfile van Wikipedia is beschikbaar in XML-formaat op deze plaats: http://download.wikimedia.org/nlwiki/latest/ . Voor de meeste toepassingen volstaat het downloaden van nlwiki-latest-pages-articles.xml.bz2.

Vroeger werd ook een SQL-bestand voorzien, maar deze wordt niet meer geactualiseerd: het laatste bestand is van 23-06-2005. Indien u MySQL wil gebruiken is een SQL-file echter nodig. Hiertoe kan XML2SQL gebruikt worden, of kan een Perl-script uitgevoerd worden. Het Perl-script bevindt zich in dit artikel als commentaar in de tekst, omdat anders fouten kunnen ontstaan bij het overnemen van de tekst in de scriptfile (druk dus op bewerk om het script te zien).

  • Om dit script te kunnen uitvoeren is een Perl-programma nodig. Onder windows kan ActivePerl gebruikt worden. Dit programma kan gedownload worden en dan volgens instructies van het installatieprogramma geïnstalleerd worden.
  • De scriptfile zoals hier te vinden is, wordt via een editor als een .pl file opgeslagen (bijv: conversie.pl) in de c:/perl/bin directory.
  • Na het downloaden van de XML-file (nlwiki-latest-pages-articles.xml.bz2) moet deze eerst unzipped worden. Dit kan bijvoorbeeld in de directory van de bot (c:/nlpy bijvoorbeeld)
  • Hierna wordt een DOS-schermpje geopend. Ga met het commando cd naar de bot-directory
  • Voor het omzetten van XML in SQL geef volgend commando: type nlwiki-latest-pages-articles.xml | c:\perl\bin\perl c:\perl\bin\conversie.pl > nlwiki-latest-pages-articles.sql
  • De script geeft een foutmelding(en) die beginnen met "duplicate key". Die kan je negeren
  • De SQL-file nlwiki-latest-pages-articles.sql kan gebruikt worden voor MySQL

Zie ook[bewerken]

Externe links[bewerken]