2015-01-18 1 views
0

Wikipedia에서 95 %의 링크가 철학 페이지로 연결됩니다. 위키 피 디아에서 어떤 링크를 클릭하고 인용문/소리/외부 링크가 아닌 첫 링크를 클릭하고 부모 링크 된 링크를 무시하는 Java에서 프로그램을 작성하려고합니다.Wikipedia API를 사용하여 내가 찾고있는 링크를 추출/구문 분석 할 수 있습니까?

예를 들어이 URL로 시작하는 경우 http://en.wikipedia.org/wiki/Dutch_people 이 철학

에 도달 할 때까지, 그것은 당신이 Getting_to_Philosophy 확인 http://xefer.com/wikipedia가 어떻게 작동하는지 볼 (어떤 단어를 입력)를 참조한다 그룹 http://en.wikipedia.org/wiki/Ethnic_group 민족 등 클릭해야합니다.

는 이미 쉬울 것입니다 전체 경로를 인쇄하는 3 열 그래서 후자 Unique_URL_Id URL_Link Next_URL_Id 에서 데이터베이스에 데이터를 저장하는 백 엔드를 썼다.

백엔드가 제대로 작동합니다 (따라야 할 링크 목록 만 제공하면됩니다). 그러나 첫 번째 링크를 추출하고 찾는 것은 효과가있는 것처럼 작동하지 않습니다. 여기

난 그냥 그 이후 난 그냥 '<p>'의를 선두를 발견하고 jSoap의 API를

public static void extractWikiPage(String title) throws IOException{ 

     Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/Europe").get(); 
     //int titles = doc.toString().indexOf("("); 

     //Get the first paragraph where the main body contents starts 
     String body = doc.getElementsByTag("p").first().toString(); 
     System.out.println(body);     
      Document doc2= Jsoup.parse(body); 
      Elements href=doc2.getElementsByTag("a"); 
      int x="".indexOf(""); 
      for(Element h: href){ 
       System.out.println(h.toString()); 
      } 
      //System.out.println(linkText); 
      System.exit(1); 

     } 

를 사용하여 URL에서 추출 쓴 샘플 코드입니다 다음 페이지의 시작에 대한 링크의 95 %. 그리고 그 단락에서, 나는 모든 연결을 얻으려고 노력하고 있습니다. 그러나 나는 위에서 쓴 조건을 만족시키는 첫 번째 것이 필요합니다.

내가 찾는 데이터를 추출하기 위해 Wikipedia API를 어떻게 사용할 수 있습니까? 귀하의 도움에 감사드립니다.

답변

1

/w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvlimit=1&rawcontinue=&titles=Dutch_people은 해당 페이지에 대한 wikitext를 반환하는 쿼리입니다.

원하는 결과를 얻으려면 그 결과를 구문 분석해야합니다. [[double square brackets]] (처음에는 /\{\{Infobox(.*?)\}\}/i 또는 infobox의 링크 및 페이지에있을 수있는 유지 관리 태그 제외)의 첫 번째 항목은 "something :"으로 시작하지 않습니다. 모든 interwiki 링크와 카테고리 및 파일/미디어 페이지를 제거하십시오.

관련 문제