User:TBurmeister (WMF)/Sandbox/Pywikibot
Installation and setup
[edit]Official docs at: Manual:Pywikibot/Installation
install pywikibot in an isolated environment:
:~$ python3 --version
Python 3.8.10
:~$ mkdir pywikibot
:~$ cd pywikibot
:~/pywikibot$ python3 -m venv venv
:~/pywikibot$ source venv/bin/activate
(venv):~/pywikibot$ python3 --version
Python 3.8.10
(venv):~/pywikibot$
install dependencies:
(venv):$ pip install "requests>=2.20.1"
Download stable version of Pywikibot:
(venv):$ wget https://pywikibot.toolforge.org/core_stable.tar.gz
(venv):$ tar -xvf core_stable.tar.gz
>>> mv core_stable core # optional. rename directory to ‘core’
(venv):$ cd core # change directory into the ‘core’ directory
Configure using a helper script:
(venv)core:$ python pwb.py generate_user_files
#TODO input format is unclear for the following, comma delimited doesn't work
# solution: you can only enter one at a time
Select family of site(eg. wikipedia, wikihow, wikibooks, wikidata etc)
Select language(en,fr,es etc)
Enter your site username
Do you want to enter a BotPassword #This is mostly for bots that will be deployed
# to run continuously on a wiki and need to authenticate repeatedly. Okay to say "n"
# for experimentation or one-off scripting
To see the contents of your user config, use a text editor to view user-config.py.
Because you've configured your set of projects (sites), you don't need to specify which you want to log in to. To login, you only need to issue the following command:
(venv)core:$ python pwb.py login
Test your installation:
(venv)core:$ python pwb.py scripts/version.py
Messing around with some commands
[edit]In the following command, I had to enclose the page name in quotes to avoid getting an error related to the parentheses in my username. Hopefully you are luckier than I am, and your username is simpler. Other pywikibot command examples you see are likely to leave out those single quotes.
python pwb.py add_text -page:'User:TBurmeister_(WMF)/Sandbox/Pywikibot/Test' -summary:"Bot: Editing via Pywikibot" -text:"==A Bot Made This=="
To investigate:
- Scripts:ListPages: Print a list of pages, as defined by page generator parameters. Optionally, it also prints page content to STDOUT or save it to a file in the current directory. https://doc.wikimedia.org/pywikibot/stable/scripts_ref/scripts.html#module-scripts.listpages