모든 위키피디아 국가, 지역 및 도시 목록을 구할 수 있습니까? 이 작업에 적합한 API를 찾을 수 없습니다. 필요한 모든 정보를 파싱하는 가장 쉬운 방법은 무엇입니까? 추신 : 나는이 정보를 얻을 수있는 또 다른 데이터 소스가 있다는 것을 안다. 하지만 위키피디아에 관심이 있습니다 ...파싱 위키 백과 국가, 지역, 도시
답변
및/또는 dbpedia으로 가야합니다.
비슷한 API를 사용할 수 있도록 동일한 API를 사용하여 MediaWiki를 직접 사용하므로 개인적으로 Wikidata부터 시작하겠습니다. 시작하려면 pywikibot을 사용합니다. Wikipedia에서 페이지를 요청할 수 있습니다 (예 : 목록 페이지 또는 카테고리).
여기에 전체 그래프를 얻을 조금 지루한 수 있습니다 ways to access Wikidata
의 좋은 개요입니다하지만 당신은 실험/비 공식 Wikidata Query API에서 대부분의 데이터를 얻을 수 있습니다.
나는 다음과 같은 워크 플로우 제안 :
이동하면, 작업 Estonia (Q191)을 말하고 (P31) 속성의 예를 들어보고 싶어 엔티티의 종류의 인스턴스를, 당신은 발견 할 것이다 : 국가, 주권 국가, 유엔의 멤버, 유럽 연합 (EU)의 회원 등
를 사용하여 출력에 위키 데이터 쿼리 API 주장 명령 모든 개체 이 선택한 P31 속성으로. country (Q6256)으로 시도하자 :
http://wdq.wmflabs.org/api?q=claim[31:6256]
그것은 숫자 ID의 배열을 출력 : 그것은 당신의 나라입니다!
당신은 할 수있다 : (결과가 발견 만 141 항목이 있기 때문에 아직 완료되지 않은 것을 알 의견 니모에 의해 제안 중 하나 국가, 위키 데이터에서 누락되거나는, 일부 국가는 country (Q6256) subclasses(P279)에서 찾을 수 있습니다) 당신이 엔티티 데이터를 Wikidata Official API를 요청할 수 있도록하지만 IDS보다 더 원한다.
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q16&format=json&props=labels|claims&languages=en|fr
(여기 캐나다 (Q16) 데이터를 JSON에서, 영어와 프랑스어 만 주장 및 레이블 데이터로 봐 documentation 귀하의 필요에 따라 매개 변수를 적용하십시오)
당신은 다음과 같이, 50의 한계로, 한 번에 여러 개체를 조회 할 수 있습니다 : 당신은 행정 구획으로 등록 된 단체를 찾을 수있는 모든 국가의 데이터에서
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q16|Q17|Q20|Q27|Q28|Q29|Q30|Q31|Q32|Q33|Q34|Q35|Q36|Q37|Q38|Q39|Q40|Q41|Q43|Q45|Q77|Q79|Q96|Q114&format=json&props=labels|claims&languages=en|fr
(P150) 그리고 새로운 엔티티에 대해 반복하십시오.
또한, 트리 명령을 사용하여 관리 하위의 모든 트리를 가져올 수 있습니다. 예를 들어 프랑스의 경우 (Q142)라면
http://wdq.wmflabs.org/api?q=tree[142][150]
타다아, 36994 점! 그러나 그것은 국가에서 다른 나라로 접할 수있는 여러 종류의 하위 구분을 감안할 때 더 세분화하기가 더 어렵습니다. 브라우저에서 이러한 종류의 쿼리를 수행하지 마십시오. 충돌 할 수 있습니다.는 이제 은주장 명령이 마지막 쿼리를 세분화하여 국가에 의해 도시를 찾을 수 있고, 지방 자치 단체의 적절한 서브 클래스 (P279) (Q15284) 엔티티 (all available here) : 프랑스에 대한, 그 집단 (Q484170), 그래서
http://wdq.wmflabs.org/api?q=tree[142][150] AND claim[31:484170]
는 모든 공동에 대한 반복 같이 요청 보인다 untries : 재미 있어요!
http://dbpedia.org를 살펴보십시오. Wikipedia를 파싱하는 것은 사소한 일입니다. – Bergi
이것은 WikiData 또는 DBPedia에서 좋은 작업입니다. infoboxes 또는 범주를 파싱하는 것은 바퀴를 재발견하는 끔찍한 방법 일 것입니다. – leo