2014-07-11 5 views
4

모든 위키피디아 국가, 지역 및 도시 목록을 구할 수 있습니까? 이 작업에 적합한 API를 찾을 수 없습니다. 필요한 모든 정보를 파싱하는 가장 쉬운 방법은 무엇입니까? 추신 : 나는이 정보를 얻을 수있는 또 다른 데이터 소스가 있다는 것을 안다. 하지만 위키피디아에 관심이 있습니다 ...파싱 위키 백과 국가, 지역, 도시

+2

http://dbpedia.org를 살펴보십시오. Wikipedia를 파싱하는 것은 사소한 일입니다. – Bergi

+2

이것은 WikiData 또는 DBPedia에서 좋은 작업입니다. infoboxes 또는 범주를 파싱하는 것은 바퀴를 재발견하는 끔찍한 방법 일 것입니다. – leo

답변

2

및/또는 dbpedia으로 가야합니다.

비슷한 API를 사용할 수 있도록 동일한 API를 사용하여 MediaWiki를 직접 사용하므로 개인적으로 Wikidata부터 시작하겠습니다. 시작하려면 pywikibot을 사용합니다. Wikipedia에서 페이지를 요청할 수 있습니다 (예 : 목록 페이지 또는 카테고리).

여기에 전체 그래프를 얻을 조금 지루한 수 있습니다 ways to access Wikidata

3

의 좋은 개요입니다하지만 당신은 실험/비 공식 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 : 재미 있어요!

+1

마지막으로 나는 Wikidata에 대한 잘 연구 된 대답을 읽었다. :) 당신이 [하위 클래스] (https://www.wikidata.org/wiki/Property:P279)를 고려하지 않았기 때문에«데이터가 여전히 불완전합니다.) 즉 법인이 사용하는 "국가"보다 구체적인 용어. 실제로 – Nemo

+1

! 내 진술을 수정하다. – maxlath