2013-04-05 80 views
6

我试图在维基百科上找到所有图像的完整列表,然后我可以将其过滤到公有领域。我已经下载从这里的SQL转储:在维基百科中查找和下载图像转储

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

,并研究了DB模式:

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”在grep和“页”寻找“Carrizo_2a.JPG”,它不是发现。

这些转储没有完成吗?我误解了结构?有一个更好的方法吗?

此外,要向前跳一步:在我筛选了我的列表后,我想下载一大批图像(数千)后,我看到一些提及我需要从网站的镜像中执行此操作以防止重载维基百科/维基媒体。如果对此也有任何指导,那将会有所帮助。

+0

以下是显示相同症状的第二张图像的示例。我已经尝试了一堆,并没有找到一个单一的,但它是在转储。 http://en.wikipedia.org/wiki/File:Aerial-SanAndreas-CarrizoPlain.jpg – 2013-04-05 21:54:42

回答

10

链接到MediaWiki储存在两个或三个地方的数据文件,这取决于你如何计算:

  • 当前文件版本实际的元数据存储在image表。这可能是你主要想要的;你会发现它的最新en.wikipedia转储here

  • 旧的替代文件修订版的数据移动到oldimage表中,该表与image表基本上具有相同的结构。此表也被倾倒,最新的一个是here。最后,每个文件也(通常)对应于命名空间6(File:)中的一个非常普通的wiki页面。您可以在XML转储中找到这些文本,与其他任何页面一样。

哦,你没有找到你所链接到英文维基百科转储文件的原因是,他们从维基共享资源共享资源库是。您可以改为在Commons data dumps中找到它们。

至于至于我可以告诉下载的实际文件,here's the (apparently) official documentation.,他们所用的意思是“批量下载,目前(截至2012年九月),从镜子而不是直接从维基媒体服务器提供。”是如果你想要tarball中的所有图像,你必须使用镜像。如果您只是在维基百科和/或Commons上的图片上拉动数百万的相对较小的子集,那么直接使用维基媒体服务器应该没问题。

只要记住要行使基本礼貌:发送一个user-agent string标识自己,并不要打太大的服务器。特别是,我建议按顺序运行下载,以便在完成前一个文件后才开始下载下一个文件。不仅如此,它比并行下载更容易实现,但它确保您不会占用更多带宽,并且允许下载速度或多或少地自动适应服务器负载。

诗篇。无论你从镜子或直接从维基媒体服务器上下载文件时,您将需要弄清楚他们是在哪个目录典型的维基百科文件URL看起来像这样:

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

其中“wikipedia/en”部分标识维基媒体项目和语言(由于历史原因,Commons被列为“wikipedia/commons”),the "a/ab" part由UTF-8中文件名的MD5哈希的前两个十六进制数字给出(因为它们在数据库转储中编码)。

+0

非常感谢!我还没有进入批量下载部分,但我没有意识到有两个单独的数据库。我现在正在导入他们两个,但是一个快速的'grep'确认我丢失的文件是在公共区域。维基百科/媒体肯定不会让这件事变得容易理解。 :) – 2013-04-06 22:25:03

+0

一切都很顺利,除了我想弄清楚如何过滤我选择的图像,通过什么是在公共领域。我无法在'图片'表格或'网页'表格中找到此信息。 我想这可能只是在页面本身的内容。例如请参阅此页面的“许可”部分:http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG 因此,我正在下载此文件: http://dumps.wikimedia.org/enwiki /latest/enwiki-latest-pages-articles.xml.bz2 但我希望找到一个SQL版本,以便于操作。有什么建议么?我在这里的正确轨道? – 2013-04-07 03:37:53

+0

我应该在此页面上添加它说:“所有页面和链接的SQL文件也可用。”这就是让我知道他们可能存在某个地方的线索。 – 2013-04-07 03:38:45