2013-04-05 5 views
6

위키피디아의 모든 이미지에 대한 포괄적 인 목록을 찾으려고합니다. 그런 다음 공개 도메인의 이미지로 필터링 할 수 있습니다.위키 피 디아 덤프 내에서 이미지 찾기 및 다운로드

http://dumps.wikimedia.org/enwiki/latest/

을 그리고 DB 스키마 연구 : 나는 SQL 여기에서 덤프 다운로드 한

http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/MediaWiki_1.20_%2844edaa2%29_database_schema.svg/2193px-MediaWiki_1.20_%2844edaa2%29_database_schema.svg.png

내가 그것을 이해 생각하지만을 나는 위키 피 디아 페이지에서 샘플 이미지를 선택하면 나는 덤프 어디에서나 그것을 발견 할 수 없다. 예를 들어 :

http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG

나는 덤프 '이미지', '하기 imagelinks'에 그렙, 그리고 'Carrizo_2a.JPG'을 찾고 '페이지'를 한 적이과를 찾을 수 없습니다입니다.

이 덤프가 완료되지 않았습니까? 구조를 오해하고 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

또한 한 걸음 앞으로 내리겠습니다. 목록을 필터링하고 대량 이미지 세트 (수천)를 다운로드 한 후 사이트의 미러에서이를 방지하기 위해 필요한 몇 가지 언급을 보았습니다. 위키 피 디아/위키 미디어에 과부하. 이것에 대한 지침이 있다면 도움이 될 것입니다.

+0

다음은 동일한 증상을 나타내는 두 번째 이미지의 예입니다. 내가 무리를 시도하고 덤프에 아직 하나를 발견하지 않았습니다. http://en.wikipedia.org/wiki/File:Aerial-SanAndreas-CarrizoPlain.jpg –

답변

10

미디어 위키 상점은 계산 방법에 따라 두 개 또는 세 개의 장소에서 데이터를 파일 : 현재 파일 버전

  • 실제 메타 데이터는 image 테이블에 저장됩니다. 이것은 아마도 당신이 주로 원하는 것입니다; 최신 en.wikipedia 덤프 here을 찾을 수 있습니다.

  • 이전 대체 파일 개정판의 데이터는 oldimage 테이블로 이동합니다.이 테이블은 기본적으로 image 테이블과 구조가 같습니다. 이 테이블도 버려지고, 최신 테이블은 here입니다.

  • 마지막으로 각 파일은 (일반적으로) 네임 스페이스 6 (File:)의 상당히 일반적인 wiki 페이지와 일치합니다. 다른 페이지와 마찬가지로 XML 덤프에서이 텍스트를 찾을 수 있습니다.

아, 그리고 당신이 영어 위키 백과 덤프에 연결된 해당 파일을 찾지 못하는있는 이유는 위키 미디어 공용에 공유 저장소에서 걸 수 있습니다. 대신 Commons data dumps에서 찾을 수 있습니다. 지금까지 내가 말할 수있는 실제 파일, here's the (apparently) official documentation.을 다운로드에 관해서는

, 모든 그들이 의미하는 "대량 다운로드 미러에서 사용 가능 (9 월 2012 년) 현재는 아니지만 위키 미디어 서버에서 직접 제공했다."이다 모든 이미지를 tarball에 저장하려면 미러를 사용해야합니다. Wikipedia 및/또는 Commons에있는 이미지에서 수백만 명의 비교적 작은 하위 집합을 끌어 당기는 경우 Wikimedia 서버를 직접 사용하는 것이 좋습니다.

자신을 식별하고 서버를 너무 세게 치지 마십시오. user-agent string을 보내주십시오. 특히 다운로드를 순차적으로 실행하여 이전 파일을 완료 한 후에 만 ​​다음 파일 다운로드를 시작하는 것이 좋습니다.어쨌든 병렬 다운로드보다 쉽게 ​​구현할 수있을뿐만 아니라 대역폭 점유율 이상을 차지하지 않으며 다운로드 속도가 서버 부하에 자동으로 적응할 수 있습니다.

ps. 당신이 거울에서 직접 위키 미디어 서버에서 파일을 다운로드하든, 당신은에있어 어떤 디렉토리 파악해야 할 것 일반적인 위키 백과 파일의 URL은 다음과 같이 :.

http://upload.wikimedia.org/wikipedia/en/a/ab/File_name.jpg 

곳 "wikipedia/en"부분 위키 미디어 프로젝트 및 언어를 식별합니다 (역사적 이유로 Commons는 "wikipedia/commons"으로 표시됨). the "a/ab" part은 UTF-8로 파일 이름의 MD5 해시의 처음 두 16 진수로 표시됩니다 (데이터베이스 덤프로 인코딩 됨).).

+0

정말 고마워요! 아직 대량 다운로드 부분을 얻지는 못했지만 두 개의 데이터 저장소가 있다는 것을 깨닫지 못했습니다. 나는 지금 당장 그 두 가지를 가져오고 있지만 빠른 'grep'은 필자의 누락 된 파일이 커먼즈 파일에 있음을 확인했습니다. Wikipedia/media에서이 내용을 쉽게 이해할 수는 없습니다. :) –

+0

공개 도메인에있는 이미지로 내가 선택한 이미지를 필터링하는 방법을 알아 내려고하는 것을 제외하면 모든 것이 원활하게 진행됩니다. '이미지'테이블 또는 '페이지'테이블에서이 정보를 찾을 수 없습니다. 아마 페이지 자체의 내용에만있는 것 같습니다. 예 : 이 페이지의 "라이센스"섹션을 참조하십시오. http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG 그래서이 파일을 다운로드하고 있습니다 : http://dumps.wikimedia.org/enwiki /latest/enwiki-latest-pages-articles.xml.bz2 하지만이 작업을 쉽게 처리 할 수있는 SQL 버전을 찾고 싶습니다. 어떤 제안? 그리고 나는 옳은 길을 가고 있는가? –

+0

이 페이지에 "모든 페이지 및 링크의 SQL 파일도 사용할 수 있습니다."라고 추가해야합니다. 그것이 어딘가에 존재할 것이라는 단서를 줬습니다. –