2013-12-14 4 views
1

위키 피 디아 파일에서 사람의 목록을 얻으려면 어떻게해야합니까?위키 피 디아 파일에서 사람들 묘사

예 : Bundeskanzler, Verteidigungsminister, SPD : 나는 기술 자료 파일이 5457009. 위키 피 디아 링크는 http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F048807-0025,_Bonn,_Neubau_Kanzleramt,_Schmidt_im_Arbeitszimmer.jpg

는 API 요청이이 파일에서 사람들 메타 데이터를 추출하고자 (슈미트, 헬무트 무엇을 볼 것입니다 http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F009740-0002,_Presseclub_Bonn,_Bildungspolitiker_aus_Finnland.jpg

답변

5

불행하게도,이 정보가 구조화 된 방식으로 — 당신이 이미지 설명 페이지에 표시되는 테이블에 저장되지 않은 M 단지입니다 : Bundesrepublik 독일) 여기

3 묘사 된 사람들과 또 다른 예이다 HTML 테이블로 렌더링하는 ediaWiki 템플릿.

템플릿에서 정보를 추출하려면, 당신은 기본적으로 세 가지 옵션이 있습니다 prop=revisionsrvprop=content를 사용하여 이미지 설명 페이지의

  1. Fetch the raw wiki markup을하고 스스로를 구문 분석합니다. 불행하게도, 구문 분석 안정적으로 조금 까다로울 수있다 wikitext 있지만, 여러 MediaWiki bot frameworks는 내장 꽤 좋은 파서와 함께.

  2. Fetch the parsed HTML version of the pageaction=parse를 사용하여 테이블에서 텍스트를 추출하는 표준 HTML 파서를 사용합니다.

  3. MediaWiki 1.20 때문에, 당신은 또한 prop=revisions 또는 action=parse 하나에 매개 변수 generatexml=1를 전달하여 당신과 return an XML parse tree을위한 템플릿 마크 업을 구문 분석하는 미디어 위키를 말할 수있는 옵션이 있습니다. 관련 부분 (읽기 쉽도록 포맷)과 같이 보일 것입니다 :

<template> 
    <title>BArch-image</title> 
    ... 
    <part> 
    <name>depicted people</name> = 
    <value> 
     * Schmidt, Helmut: Bundeskanzler, Verteidigungsminister, SPD, Bundesrepublik Deutschland 
    </value> 
    </part> 
    ... 
</template> 

이 데이터의 완벽하게 깨끗한 표현하지 — 여전히 글 머리 기호 목록을 나타내는 * 같은 일부 구문 분석되지 않은 wikitext 요소를 포함 item — 그러나 완전히 원시 MediaWiki 템플릿 마크 업보다 구문 분석이 훨씬 쉬워야합니다.

+0

매우 유망 해 보입니다. 나는 당신의 세 번째 접근법을 좋아하고 그것을 시도 할 것입니다. – kieste