single |
*********
Pywikibot
*********
The Pywikibot framework is a Python library that interfaces with the
[MediaWiki API]
version 1.27 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
===========
.. code:: text
git clone https://gerrit.wikimedia.org/r/pywikibot/core.git
cd core
git submodule update --init
pip install -r requirements.txt
python pwb.py
Or to install using PyPI (excluding scripts)
.. code:: text
pip install pywikibot
pwb
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:
.. code:: python
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:
.. code:: python
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
Script example
==============
Pywikibot provides bot classes to develop your own script easily:
.. code:: python
import pywikibot
from pywikibot import pagegenerators
from pywikibot.bot import ExistingPageBot
class MyBot(ExistingPageBot):
update_options = {
'text': 'This is a test text',
'summary': 'Bot: a bot test edit with Pywikibot.'
}
def treat_page(self):
"""Load the given page, do some changes, and save it."""
text = self.current_page.text
text += '\n' + self.opt.text
self.put_current(text, summary=self.opt.summary)
def main():
"""Parse command line arguments and invoke bot."""
options = {}
gen_factory = pagegenerators.GeneratorFactory()
# Option parsing
local_args = pywikibot.handle_args(args) # global options
local_args = gen_factory.handle_args(local_args) # generators
options
for arg in local_args:
|