gpt4 book ai didi

wikipedia - 在 Wikipedia Dump 中查找和下载图像

转载 作者:行者123 更新时间:2023-12-04 14:02:35 30 4
gpt4 key购买 nike

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

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

并研究了数据库模式:

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

我已经对转储“图像”、“图像链接”和“页面”进行了 grep,以寻找“Carrizo_2a.JPG”,但没有找到。

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

另外,要向前迈出一步:在我过滤掉我的列表并且我想下载大量图像(数千张)之后,我看到一些提到我需要从网站的镜像中执行此操作以防止 wikipedia/wikimedia 重载.如果对此也有任何指导,那将很有帮助。

最佳答案

MediaWiki 将文件数据存储在两个或三个位置,具体取决于您的计数方式:

  • 当前文件版本的实际元数据存储在 image 中。 table 。这可能是您主要想要的;你会发现它的最新 en.wikipedia 转储 here .
  • 旧文件修订的数据移至 oldimage表,其结构与image 基本相同 table 。这张表也被转储了,最新的是here .
  • 最后,每个文件也(通常)对应于命名空间 6 (File:) 中的一个非常普通的 wiki 页面。您将在 XML 转储中找到这些文本,与任何其他页面相同。

  • 哦,您在英文维基百科转储中找不到链接到的文件的原因是它们来自 Wikimedia Commons 的共享存储库。您可以在 Commons data dumps 中找到它们。反而。

    至于下载实际文件, here's the (apparently) official documentation.据我所知,他们所说的“批量下载目前(截至 2012 年 9 月)可从镜像获得,但不能直接从 Wikimedia 服务器提供”。就是如果你想要一个 tarball 中的所有图像,你将不得不使用一个镜像。如果您只是从维基百科和/或共享资源上的数百万图像中提取相对较小的一部分,那么直接使用维基媒体服务器应该没问题。

    请记住保持基本礼貌:发送 user-agent string识别自己,不要太用力地打服务器。特别是,我建议您按顺序运行下载,这样您只有在完成前一个文件后才开始下载下一个文件。无论如何,这不仅比并行下载更容易实现,而且它确保您不会占用超过您的带宽份额,并允许下载速度或多或少地自动适应服务器负载。

    附言。无论您是从镜像下载文件还是直接从 Wikimedia 服务器下载文件,您都需要确定它们位于哪个目录。典型的 Wikipedia 文件 URL 如下所示:
    http://upload.wikimedia.org/wikipedia/en/a/ab/File_name.jpg

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

    关于wikipedia - 在 Wikipedia Dump 中查找和下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15844190/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com