Життя у світі Вікі/Роботи

Матеріал з Вікіпідручника
Перейти до: навігація, пошук

Почнемо з короткого опису API, а потім перейдемо до Pywikipediabot як найбільш доступного, гнучкого та розвинутого. Можете додати інші бібліотеки для роботи з API, та приклади власних роботів з поясненнями.

Зміст

MediaWiki API [ред.]

API дозволяє отримувати доступ до даних вікіпедії через протокол http.

Наприклад отримати код сторінки PAGENAME можна звичайним GET запитом:

 http://uk.wikipedia.org/w/index.php?title=PAGENAME&action=raw

Якщо сторінка PAGENAME не існує нас повідомлять кодом 404.

Історія редагувань сторінки може отримуватись за таким запитом:

 http://uk.wikipedia.org/w/api.php?action=query&prop=revisions&titles=FAT32&rvprop=timestamp%7Cuser%7Csize&format=jsonfm&rvlimit=100

Дані, які рушій передає по запиту можуть мати різний формат, наприклад XML, YAML, чи JSON. Він задається параметром "format". Якщо до назви формату додати закінчення "fm", то отримаємо той же формат, але придатний для відображення у браузері (з переносами через <br />, та закодованими в HTML символами "<"), тобто зручний для дослідження людиною. Боти звісно краще зрозуміють чисті дані, без "fm".


Повна документація по API знаходиться тут.

pywikipediabot [ред.]

Завантаження [ред.]

Вам потрібен інтерпретатор мови Python (http://www.python.org/download/) та бот http://sourceforge.net/projects/pywikipediabot/

Команда для завантаження svn репозиторію:

svn co http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia pywikipedia

Налаштування [ред.]

В каталозі в якому знаходяться файли бота створіть файл user-config.py У ньому напишіть наступні налаштування.

Вкажіть основний мовний розділ, з яким ви будете працювати

mylang = 'uk'

Перерахуйте імена користувачів у різних проектах, які може використовувати бот для виконання редагувань.

Наприклад

usernames['wikipedia']['uk'] = 'IlyaBot'
usernames['wikipedia']['en'] = 'Ilya K'
usernames['wiktionary']['uk'] = 'Ilya'

Вкажіть кодування консолі для правильної обробки кирилиці.

console_encoding='код'

У Windows вкажіть cp1251.У Linux це ваше системне кодування (скоріш за все utf8)