2012-10-23 4 views
1

위키피디아 URL이 있습니다. 위키 API를 사용하여 30000 개 문서까지 페이지를 비롯한 다른 참조 된 페이지의 콘텐츠를로드하고 싶습니다. URL을 통해 반복 할 수는 있지만 효과적이지는 않습니다. 그것을하는 것. 내가 이것을 성취 할 수있는 다른 방법이 있습니까? HDFS를 Hadoop에 채우려면이 기능이 필요합니다.위키 피 디아에서 30000 개의 문서를로드 중입니다.

+0

당신이 그들에게 기부를하시기 바랍니다. 30,000 페이지를 제공하면 돈이들 것입니다. –

+0

제목 페이지에서 참조 된 문서를 얻는 방법을 알게되면 필자는 기부를 확실히하겠습니다. – Ashish

답변

1

위키피디아 소프트웨어 및 데이터베이스 이미지를 다운로드하고 위키피디아를 설정하고 로컬로 액세스 할 수 있습니다. 이것은 잘 설명되어 있으며 그물을 통해 페이지 수를 요청하는 것이 훨씬 더 효율적이어야합니다. 다음을 참조하십시오 : http://www.igeek.co.za/2009/10/16/how-to-mirror-wikipedia/

다른 많은 소스와 사전 처리 된 페이지도 있습니다. 다음 단계에서 콘텐츠로 무엇을 할 계획입니까?

+0

왜 데이터에 액세스하려면 Mediawiki를 설정해야하는지 모르겠지만 데이터베이스 이미지로 충분합니다. – svick

1

몇 가지 방법이 있습니다. Toolserver 사용자는 텍스트가 아닌 모든 메타 데이터에 대한 직접 데이터베이스 쿼리 액세스 권한을가집니다. 맞는 경우 query service 통해 ask one of them to run a query 수 있습니다. 이는 링크 된 페이지 등을 찾아서 페이지 ID 또는 개정 ID의 맵을 작성하는 매우 직접적인 방법입니다.

그렇지 않으면 대량 작업에 적합하지만 끝까지 처리하는 database dumps을 살펴보십시오.

마지막으로 Wikipedia는 수 많은 봇과 API 스크래핑에 사용됩니다. 이상적은 아니지만 다른 방법이없는 경우 매초마다 새 쿼리를 시작하는 타이머를 실행하면 8 시간 후에 완료됩니다.

+0

위키 피 디아에서 동작하는 봇에 관해서는, [API] (http://en.wikipedia.org/w/api.php)를 사용하여 어떻게하는지 언급해야합니다. – svick

0

Jeff와 NilsB는 HDFS를 작성하기 위해 위키 피 디아를 크롤링 할 의도가 잘못되었다고 말합니다. 그것을하기위한 올바른 방법은 전체 위키를 하나의 파일로 다운로드하여 HDFS에로드하는 것입니다.

질문에서 일부 세부 사항을 추상화하면 더 일반적인 것으로 바뀔 것입니다 : Hadoop을 사용하여 URL로 지정된 사이트를 크롤링하는 방법은 무엇입니까?

그래서 대답은 당신이 (페이지를 다운로드하고 key=urlvalue=page's body로 산출 수용 URL)를 매퍼 쓰기, HDFS에 URL을 사용하여 파일을 업로드하고를 제어하기위한 NLineInputFormat을 사용하도록 작업을 구성해야합니다입니다 각 매퍼가 처리 할 URL 수입니다. 해당 매개 변수를 제어하면 자체 및지도 슬롯 수를 통한 병렬 처리 수준을 제어 할 수 있습니다.

관련 문제