如何以编程方式访问PetScan结果?

3

我想使用Petscan https://petscan.wmflabs.org/ 来查找属于某些类别的文章等... 使用他们提供的网站很容易做到这一点。我想知道是否有一种方法可以在Python中实现这一点。我创建一个URL来发送搜索查询,基于用户给出的参数,它会返回维基百科文章标题列表。


是的,这是可能的。可能有一些REST API可以传递您的关键字。或者如果它们是通过GET请求传输的,您可以从浏览器中复制链接。对于这两种情况,您可以使用requests和可能的json库。 - Joe
1个回答

1
如果您创建一个查询,它将链接到发送的URL,其中包含所有参数,在结果表格上方: 链接到填充了刚刚运行的查询的预填充表单,包括自动运行和不自动运行。PSID是.... 以下是如何通过编程方式访问查询以及在返回的json中找到答案的示例:
import requests
import json

petscan = requests.get('https://petscan.wmflabs.org/?max_sitelink_count=&categories=cats&project=wikipedia&language=en&cb_labels_yes_l=1&edits%5Bflagged%5D=both&edits%5Bbots%5D=both&search_max_results=500&cb_labels_any_l=1&cb_labels_no_l=1&format=json&interface_language=en&edits%5Banons%5D=both&ns%5B0%5D=1&&doit=').json()
table = petscan['*'][0]['a']['*']

谢谢!如果我之前定义了变量,并且想要将它们插入到URL中,我应该如何操作?顺序是否重要? - user8954282
我不确定,但顺序应该没有影响。 - smartse
需要注意的是,为了使这个解决方案起作用,应该在URL中手动插入"&format=json",因为如果保持原样,petscan提供的链接将返回HTML结果。如果有更简单的方法,我还没有找到。 - Pere
URL已经包含了,不是吗?这是通过转到“输出”>“格式”并选择JSON生成的。 - smartse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接