Need help with pywikibot?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

wikimedia
405 Stars 162 Forks MIT License 14.6K Commits 0 Opened issues

Description

🤖 A Python library that interfaces with the MediaWiki API. This is a mirror from gerrit.wikimedia.org. Do not submit any patches here. See https://www.mediawiki.org/wiki/Developer_account for contributing.

Services available

!
?

Need anything else?

Contributors list

.. image:: https://travis-ci.org/wikimedia/pywikibot.svg?branch=master :alt: Travis Build Status :target: https://travis-ci.org/wikimedia/pywikibot .. image:: https://ci.appveyor.com/api/projects/status/xo2g4ctoom8k6yvw/branch/master?svg=true :alt: AppVeyor Build Status :target: https://ci.appveyor.com/project/ladsgroup/pywikibot-g4xqx .. image:: https://codecov.io/gh/wikimedia/pywikibot/branch/master/graph/badge.svg :alt: Code coverage :target: https://codecov.io/gh/wikimedia/pywikibot .. image:: https://api.codeclimate.com/v1/badges/de6ca4c66e7c7bee4156/maintainability :alt: Maintainability :target: https://codeclimate.com/github/wikimedia/pywikibot/maintainability .. image:: https://img.shields.io/pypi/pyversions/pywikibot.svg :alt: Python :target: https://www.python.org/downloads/ .. image:: https://img.shields.io/pypi/v/pywikibot.svg :alt: Pywikibot release :target: https://pypi.org/project/pywikibot/ .. image:: https://pepy.tech/badge/pywikibot :alt: Total downloads :target: https://pepy.tech/project/pywikibot .. image:: https://static.pepy.tech/personalized-badge/pywikibot?period=month&units=internationalsystem&leftcolor=black&rightcolor=blue&lefttext=monthly :alt: Monthly downloads :target: https://pepy.tech/project/pywikibot .. image:: https://static.pepy.tech/personalized-badge/pywikibot?period=week&units=internationalsystem&leftcolor=black&rightcolor=blue&lefttext=weekly :alt: Weekly downloads :target: https://pepy.tech/project/pywikibot

Pywikibot

The Pywikibot framework is a Python library that interfaces with the

MediaWiki API 
_ version 1.23 or higher.

Also included are various general function scripts that can be adapted for different tasks.

For further information about the library excluding scripts see the full

code documentation 
_.

Quick start

::

git clone https://gerrit.wikimedia.org/r/pywikibot/core.git
cd core
git submodule update --init
python pwb.py script_name

Or to install using PyPI (excluding scripts)

::

pip install -U setuptools
pip install pywikibot

Our

installation
guide 
_ has more details for advanced usage.

Basic Usage

If you wish to write your own script it's very easy to get started:

::

import pywikibot
site = pywikibot.Site('en', 'wikipedia')  # The site we want to run our bot on
page = pywikibot.Page(site, 'Wikipedia:Sandbox')
page.text = page.text.replace('foo', 'bar')
page.save('Replacing "foo" with "bar"')  # Saves the page

Wikibase Usage

Wikibase is a flexible knowledge base software that drives Wikidata. A sample pywikibot script for getting data from Wikibase:

::

import pywikibot
site = pywikibot.Site('wikipedia:en')
repo = site.data_repository()  # the wikibase repository for given site
page = repo.page_from_repository('Q91')  # create a local page for the given item
item = pywikibot.ItemPage(repo, 'Q91')  # a repository item
data = item.get()  # get all item data from repository for this item

For more documentation on pywikibot see our

docs 
_.

.. include:: pywikibot/DIRECTORIES.rst

Required external programs

It may require the following programs to function properly:

  • 7za
    : To extract 7z files

Roadmap

.. include:: ROADMAP.rst

Release history

See https://github.com/wikimedia/pywikibot/blob/stable/HISTORY.rst

Contributing

Our code is maintained on Wikimedia's

Gerrit installation 
, `learn <https://www.mediawiki.org/wiki/Developeraccount>`_ how to get started.

.. include:: CODEOFCONDUCT.rst

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.