我试图在https://dev.wikidebates.org/wiki/Wikid中创建一个页面,它与wikipedia类似,因此Pywikibot应该以相同的方式工作。我想用Pywikibot做一个页面。我检查了Pywikibot https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts中的选项脚本。脚本pagefromfile.py负责此操作。但是,我没有在代码中看到我应该在wiki的新页面上写链接。在类中的函数page fromfile返回页面。如何检查页面是否制作完成?
我现在尝试的代码如下。一切正常,除了最后一行。(未创建页面)
site = pywikibot.Site('dev', 'wikidebates') # The site we want to run our bot on
page = pywikibot.Page(site, "Faut-il légaliser le cannabis ?")
text = page.get() #get the code of the page
wb = open("pages1.txt", "w", encoding="utf-8")
wb.write(str(txt)) #write text to the file, in order to download it then to the wiki
wb.close()
main_page('-file:pages1.txt') #use main function from scrip pagefromfile.py - I renamed it
您还没有显示任何进一步的信息。可能还有来自pagefromfile.pyscript的其他消息。如果你从wiki下载文本,你要么必须在文本中包含开始和结束标记,要么必须使用-textonly
选项。我还建议使用-title
选项。
参考文档:https://doc.wikimedia.org/pywikibot/stable/scripts/general.html#module-scripts.pagefromfile
from scripts.pagefromfile import main # or main_page in your modified case
site = pywikibot.Site('wikidebates:dev') # you may use te site name for the constructor function
page = pywikibot.Page(site, 'Faut-il légaliser le cannabis ?')
text = page.text
with open("pages1.txt", "w", encoding="utf-8") as wp: # also closes the file
wb.write(text)
main('-file:pages1.txt', '-textonly', '-title:"The new title"')
如果目标站点不是默认站点,请在main函数中添加-site
选项。为了模拟的目的,您可以使用-simulate
选项:
main('-file:pages1.txt', '-textonly', '-title:"The new title"', '-simulate', '-site:wikidebates:dev')
注意:给main
函数的所有参数必须是用逗号分隔的字符串。你不能把所有的参数都作为一个长字符串,除非你这样做:
main(*'-file:pages1.txt -textonly -title:The_new_title'.split())