2012-09-01 6 views
1

모든 위키 카테고리 ID, 카테고리 이름 및 상위 카테고리 ID를 가져 오려고합니다. 하지만, 난 내 자신의 서버에 전체 위키 설치를하고 싶지 않아. API 또는 모든 카테고리 데이터가 wiki 서버의 xml/bz 파일에 제공됩니까? 그래서 그것을 사용할 수 있습니까?위키의 카테고리 트리를 가져 오는 방법은 무엇입니까?

나는 당신이 기본적으로 두 가지 옵션이 있다고 생각 this link

+0

NB : 위키 백과의 카테고리는 ** 나무가 아닙니다 ** 나무입니다. 풀리지 않은 카테고리 (상위 카테고리의 멤버가 아님) 또는 루프를 형성하는 카테고리 (상위 카테고리는 하위 카테고리이기도 함)가 있습니다. – duskwuff

+0

이 페이지 너무보기 : https://stackoverflow.com/questions/21782410/finding-subcategories-of-a-wikipedia-category-using-category-and-categorylinks-t –

답변

1

의 모든 다음과 같은 범주를 가져 오려는 :

  1. 사용 the API (특히 the categorymembers module)이 반복적으로 실제로, 그것은 아니다 (트리를 걷는 나무, 그것은 DAG입니다). 이것은 많은 요청을하는 것을 의미하므로 이렇게하는 것은 매우 느릴 것입니다.

  2. 다운로드 범주 정보가 포함 된 SQL dumps. 대부분의 정보는 categorylinks 테이블에 있지만 페이지 ID를 해당 이름에 매핑하려면 page 테이블이 필요합니다.

+0

카테고리 및 카테고리의 덤프 파일을 가져 왔습니다. 당신이 제공 한 링크 위의 링크. 이제 데이터베이스 카테고리에 2 개의 대형 테이블과 암호화 된 데이터가있는 categorylinks를 볼 수 있습니다. 이제 어떻게 PHP로 카테고리 이름과 관계 hirarchy를 가져올 수 있습니까? 어떤 생각 ??? 제발 제안 해주세요. –

+0

이러한 테이블에 암호화 된 내용이 없어야합니다. 그러나 이름을 얻으려면, 내가 말한 것처럼'page' 테이블이 필요합니다. 테이블의 구조에 대한 정보는 [categorylinks 테이블] (http : //)로 시작하여 [mediawiki.org] (http://www.mediawiki.org/wiki/Manual:Database_layout)를보십시오. www.mediawiki.org/wiki/Manual:Categorylinks_table). – svick

+0

그것은 암호화되지 않습니다, 그것은 varchar 바이너리이며, 카테고리에서 SELECT CONVERT (cat_title USING utf8)를 사용하십시오; –

관련 문제