# Skapa en Wikipedia-bot: Guide till Pywikibot och regler

*Kom igång · 2026-11-09*

> En praktisk guide till att utveckla en Wikipedia-bot med Pywikibot, inklusive kontokonfiguration, gemenskapens riktlinjer och säker körning.

Att skapa en Wikipedia-bot är ett effektivt sätt att automatisera upprepande uppgifter som kategorisering, länkfixar och stavningskontroll på uppslagsverket. Med rätt verktyg och ett ansvarsfullt upplägg kan skript utföra tusentals nödvändiga redigeringar utan att belasta manuella skribenter eller störa uppslagsverkets stabilitet.

På [Wikipedia](https://sv.wikipedia.org/) sköts en stor del av underhållet av automatiserade program. Historiska exempel som Lsjbot visade hur storskalig generering fungerar i praktiken, vilket du kan läsa mer om i vår genomgång av [Lsjbot Wikipedia robot](/artiklar/lsjbot-wikipedia-robot). I dag sker de flesta botkörningar med strikta begränsningar, standardiserade ramverk och tydliga tillstånd från gemenskapen.

## Förberedelser innan du kan skapa en Wikipedia-bot

Innan du skriver en enda rad kod finns det administrativa och etiska regler du måste känna till. Alla Wikimedia-projekt har tydliga riktlinjer för automatiserade verktyg för att skydda databasen och innehållets kvalitet.

För det första krävs alltid ett separat användarkonto för boten. Du får aldrig köra ett automatiserat skript från ditt personliga användarkonto. Botkontot bör namnges så att dess funktion framgår tydligt, exempelvis genom att avsluta namnet med ”Bot”. På kontots användarsida ska det finnas information om vem som driver boten, vilket programmeringsspråk som används och hur man kontaktar operatören vid eventuella problem.

För det andra behöver du ansöka om robotstatus, en så kallad botflagga. På svenskspråkiga Wikipedia görs detta på sidan för ansökan om robotstatus. Utan flagga syns alla redigeringar i listan över senaste ändringar, vilket dränker mänskliga bidrag och försvårar övervakningen. Innan flaggan beviljas krävs vanligtvis att boten genomför ett begränsat antal testredigeringar under manuell uppsikt.

## Installera och konfigurera Pywikibot

Det ledande ramverket för att bygga botar för Wikimedia-projekt är Pywikibot. Det är ett Python-baserat bibliotek som hanterar inloggning, nätverksanrop, felhantering och kommunikation med MediaWikis officiella API.

Installationen görs enklast med Pythons pakethanterare:

```bash
pip install pywikibot
```

När paketet är installerat behöver du skapa konfigurationsfilen `user-config.py` i din arbetskatalog eller i din hemkatalog. Denna fil talar om för Pywikibot vilket projekt och språk du arbetar mot samt vilket användarnamn boten har. En grundläggande konfiguration för svenska Wikipedia ser ut så här:

```python
family = 'wikipedia'
mylang = 'sv'
usernames['wikipedia']['sv'] = 'DittBotNamn'
```

För att hantera autentisering på ett säkert sätt rekommenderas MediaWikis funktion för botlösenord. Genom att skapa ett botlösenord under dina inställningar på Wikipedia ger du skriptet endast de behörigheter som krävs, utan att exponera ditt huvudsakliga kontolösenord.

## Steg för steg: Skapa en Wikipedia-bot med Pywikibot

När miljön är konfigurerad kan du skriva ditt första skript. Pywikibot gör det enkelt att hämta sidor, läsa innehåll och spara ändringar med inbyggd hänsyn till serverbelastning.

Ett typiskt arbetsflöde ser ut enligt följande steg:

1. **Definiera målsidor:** Använd en generator för att välja ut sidor, till exempel alla artiklar i en viss kategori eller sidor som länkar till en specifik omdirigering.
2. **Hämta texten:** Läs in artikelns wikitext via Pywikibots `Page`-objekt.
3. **Analysera och ändra:** Utför de nödvändiga förändringarna med stränghantering eller reguljära uttryck.
4. **Ange sammanfattning:** Varje redigering måste ha en tydlig redigeringskommentar som beskriver vad som gjorts, gärna med länk till botens sida eller uppdrag.
5. **Spara med kontroll:** Spara sidan med parametern `save()` och hantera eventuella konflikter.

Här är ett enkelt exempel på hur en sida kan hämtas och uppdateras:

```python
import pywikibot

site = pywikibot.Site('sv', 'wikipedia')
page = pywikibot.Page(site, 'Wikipedia:Sandlådan')

if page.exists():
    text = page.text
    new_text = text + "\n\nAutomatisk testrad från min nya bot."
    page.text = new_text
    page.save(summary="Testkörning av ny bot i sandlådan", minor=True)
```

När du provkör skript i början bör du alltid använda parametrar som `-simulate` eller `-test` för att kontrollera att rätt ändringar föreslås utan att några faktiska skrivningar görs i databasen. För mer avancerade arkitekturer och hur storskaliga skript struktureras, se vår artikel om [Lsjbot hur det fungerar](/artiklar/lsjbot-hur-fungerar).

## Riktlinjer och säkerhetsåtgärder vid drift

När du väljer att skapa en Wikipedia-bot bär du hela ansvaret för varje enskild ändring den genomför. Ett programmeringsfel kan leda till att hundratals sidor formateras felaktigt på bara några sekunder.

För att minimera riskerna bör du implementera följande principer:

- **Stryp hastigheten:** Pywikibot har inbyggd hastighetsreglering via parametrar som `put_throttle`. Kör aldrig snabbare än vad reglerna tillåter, vanligtvis högst en redigering var femte till tionde sekund för icke-akuta uppgifter.
- **Implementera en nödstoppsknapp:** Boten bör regelbundet kontrollera sin egen diskussionssida eller en särskild undersida. Om en användare lämnar ett meddelande eller skriver ordet "STOPP" ska processen omedelbart avslutas.
- **Små och avgränsade uppgifter:** Skapa botar för specifika problem snarare än universella jätteskript. Rättning av brutna mallar, standardisering av källhänvisningar eller arkivering av diskussionssidor är utmärkta uppgifter.
- **Logga alla händelser:** Se till att ditt program sparar detaljerade loggar över vilka sidor som besökts, vilka ändringar som utförts och eventuella varningar från servrarna.

Genom att arbeta metodiskt, kommunicera öppet med gemenskapen och respektera Wikimedia-projektens regler blir din bot ett värdefullt verktyg för att underhålla och förbättra världens största fria uppslagsverk.
