Как создать и / или редактировать страницу с помощью pyWikiBot - PullRequest
1 голос
/ 27 марта 2020

MediaWiki API имеет функцию редактирования , которая доступна в pywikibot. В соответствии с https://doc.wikimedia.org/pywikibot/master/api_ref/pywikibot.site.html

функция вызывается с параметром страницы:

 editpage(page, summary=None, minor=True, notminor=False, bot=True, recreate=True, createonly=False, nocreate=False, watch=None, **kwargs)[source]¶

Страница требует создания источника. Я не могу найти пример для этого.

Например: Как добавить что-то для редактирования резюме при использовании Pywikibot?

имеет только одну строку в качестве принятого ответа и делает не использовать сайт или страницу. Я запутался.

Как правильно подходить к созданию и редактированию страницы с помощью pyWikiBot напрямую, используя python код? (не скрипт ...)

https://github.com/wikimedia/pywikibot/blob/master/pywikibot/page/ init .py # L2328

имеет конструктор:

"""Page: A MediaWiki page."""

    @deprecated_args(defaultNamespace='ns', insite=None)
    def __init__(self, source, title='', ns=0):
        """Instantiate a Page object."""
        if isinstance(source, pywikibot.site.BaseSite):
            if not title:
                raise ValueError('Title must be specified and not empty '
                                 'if source is a Site.')
        super(Page, self).__init__(source, title, ns)

К сожалению, он не задокументирован должным образом и является частью строки 6000 Файл init .py, содержащий все классы.

При попытке

    newPage=Page(site,pageTitle)
    newPage.text=pageContent

получаю

AttributeError: APISite instance has no attribute 'edit'
    site.edit(newPage,'summary')

1 Ответ

1 голос
/ 27 марта 2020

Работает следующий код:

 from pywikibot.page import Page

 newPage=Page(site,pageTitle)
 newPage.text=pageContent
 newPage.save("summary")

см. Также https://www.mediawiki.org/wiki/Manual: Pywikibot / Create_your_own_script

К сожалению, документация на https://pypi.org/project/pywikibot/ не использует стандартные python инструменты документации.

...