Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 区分Wiki中的文章页面和列表/消歧页面_Python_Wikipedia - Fatal编程技术网

Python 区分Wiki中的文章页面和列表/消歧页面

Python 区分Wiki中的文章页面和列表/消歧页面,python,wikipedia,Python,Wikipedia,我正在使用“”从Wikipedia生成随机页面,并使用BeautifulSoup阅读这些页面。问题是,我只想要如下的文章页面: 但有时它是一个列表页面或消歧页面(我不想要)。e、 g: 有没有一种简单的方法来区分这些病例 用于判断页面是否消除歧义。例如,将在文章名称空间()中检索10个随机标题。消歧页面的属性中将包含“pageprops”:{“消歧”:“}。不幸的是,列表没有这么简单的方法,你只能从它们的标题(/^List of.*/)或类别中猜测。列表页面(大多数情况下)可以通过查询Wiki

我正在使用“”从Wikipedia生成随机页面,并使用BeautifulSoup阅读这些页面。问题是,我只想要如下的文章页面:

但有时它是一个列表页面或消歧页面(我不想要)。e、 g:

有没有一种简单的方法来区分这些病例

用于判断页面是否消除歧义。例如,将在文章名称空间()中检索10个随机标题。消歧页面的属性中将包含
“pageprops”:{“消歧”:“}
。不幸的是,列表没有这么简单的方法,你只能从它们的标题(
/^List of.*/
)或类别中猜测。

列表页面(大多数情况下)可以通过查询WikiData中的P31()值来区分。将具有值Q13406463(维基媒体列表页面)

如果使用这种方法,可以同时检查消歧页面。这些值为Q4167410()

有许多Python库用于与MediaWiki API交互,例如:


您是否尝试过查看为这些案例生成的HTML?所有列表页是否都从“列表”开始?你能搜索“这个消歧页面列出了与同一标题相关的文章”吗?到目前为止你做了什么?我正在使用beautifulsou:read_data=urlib2.urlopen(src)。read()self.soup=beautifulsou(read_data)s=“”defination=self.soup.find_all('p')Not HTML“Not[sic]涉及HTML“?你认为美丽的乌苏在做什么?我知道它在做什么。我只是不想直接与HTML打交道。清晰?适度;使用BS获取title元素并检查它如何开始算是太实际了吗?
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q678323
listOfTitles = 'Ada_County,_Idaho|List_of_U.S._counties_named_after_personal_first_names'

site = wikitools.Wiki("http://www.wikidata.org/w/api.php", user, password)
site.login(user,password)

params = {'action':'wbgetentities', 'props':'claims','titles':listOfTitles,'format':'json'}
request = wikitools.APIRequest(site, params)
result = request.query()