当前位置:  开发笔记 > 编程语言 > 正文

检查MediaWiki页面是否存在(Python)

如何解决《检查MediaWiki页面是否存在(Python)》经验,为你挑选了2个好方法。

我正在研究一个改变这个的Python脚本:

foo
bar

进入:

[[Component foo]]
[[bar]]

脚本检查(每个输入行)是否存在"Component foo"页面.如果存在,则创建指向该页面的链接,如果该页面不存在,则创建直接链接.

问题是我需要一种快速而廉价的方法来检查是否存在很多维基页面.我不想(尝试)下载所有"组件"页面.

我已经找到了一种快速的方法来手动执行此操作:编辑一个新的wiki页面.将所有"组件"链接粘贴到页面中,按预览,然后保存生成的预览HTML页面.生成的HTML文件包含现有页面的链接,而不是不存在的页面.

所以重新解释一下我的问题:如何在Python中保存mediawiki预览页面?

(我没有对数据库的本地访问权限.)



1> 小智..:

您绝对可以使用API​​来检查页面是否存在:

# assuming words is a list of words you wish to query for
import urllib

# replace en.wikipedia.org with the address of the wiki you want to access
query = "http://en.wikipedia.org/w/api.php?action=query&titles=%s&format=xml" % "|".join(words)
pages = urllib.urlopen(query)

现在您将包含xml的页面如下:



   

   

   


不存在的页面将显示在此处,但它们具有缺少的"""属性集,如上所示.您还可以检查保存侧的无效属性.

现在,您可以使用自己喜欢的xml解析器来检查这些属性并做出相应的反应.

另见:http://www.mediawiki.org/wiki/API:Query



2> poke..:

使用Pywikibot与MediaWiki软件进行交互.它可能是最强大的机器人框架.

Python的Wikipediabot框架(pywikipediaPyWikipediaBot)是上链接到MediaWiki网站工作的自动化工具的集合.最初是为维基百科设计的,现在用于整个维基媒体基金会的项目以及许多其他MediaWiki wiki.它是用Python编写的,这是一种免费的跨平台编程语言.此页面提供了有关想要使用僵尸软件的人员的一般信息的链接.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有