我有公司名称列表。我想做的是,按公司名称获取他们的网站。假设我们想从Microsoft维基百科页面抓取“网站”。
以下查询不会返回此信息
https://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&format=json&titles=microsoft
有关获取网站字段的任何建议吗?
答案 0 :(得分:2)
使用Wikipedia API这样做并不容易,因为主页网址格式可能不同,链接可以嵌套在许多模板中,并且可能必须使用正则表达式。更好的变体是使用Wikidata API。
因此,维基百科中的文章Microsoft与维基数据项Microsoft (Q2283)相关联,其中包含属性official website (P856),这意味着您需要从此请求的响应中获取此属性:
https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&sites=enwiki&languages=en&props=claims&titles=Microsoft
最后一个将直接返回官方网站的网址:
{
....
"P856":[{
"mainsnak":{
"datavalue":{
"value":"https://www.microsoft.com"
},
},
}]
....
}
如果您需要包含属性P856和P1128 (employees)的所有维基数据项目列表,并且还包含指向英语维基百科的链接,则可以使用WikidataQuery API:
http://wdq.wmflabs.org/api?q=claim[1128] AND claim[856] AND link[enwiki]