У меня есть список названий компаний. То, что я хочу сделать, это получить их сайты по названиям компаний. Допустим, мы хотим захватить «Сайт» из Microsoft Страница Википедии.
Запрос ниже не возвращает эту информацию
Любые предложения, чтобы получить только поле сайта?
Это не легко сделать с Википедия API потому что формат URL домашней страницы может отличаться, и ссылка может быть вложена во многие шаблоны, и, вероятно, придется использовать регулярное выражение. Лучший вариант — использовать API Wikidata.
Итак, статья Microsoft в Википедии связан с элементом Викиданных Microsoft (Q2283), который имеет свойство официальный сайт (P856), Это означает, что вам нужно получить это свойство из ответа на этот запрос:
https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&sites=enwiki&languages=en&props=claims&titles=Microsoft
Последний вернет непосредственно URL официального сайта:
{
....
"P856":[{
"mainsnak":{
"datavalue":{
"value":"https://www.microsoft.com"},
},
}]
....
}
Если вам нужен список всех элементов Wikidata, которые имеют свойство P856 и P1128 (сотрудники) а также включить ссылку на английскую Википедию, вы можете использовать WikidataQuery API:
http://wdq.wmflabs.org/api?q=claim[1128] AND claim[856] AND link[enwiki]
Других решений пока нет …