如何在未注册Bot帐户的情况下,通过编程从Wikimedia Commons下载图像?

18
似乎唯一能够获得机器人账户批准的方式是如果它添加或编辑了维基媒体上已有信息。如果您尝试使用某些 API 库下载任何图像,而没有机器人帐户,则会收到错误消息而不是图像。似乎他们阻止不通过浏览器进入的任何人?还有其他人有这方面的经验吗?我错过了什么吗?
5个回答

21

谢谢!这个链接也很有用:http://www.mediawiki.org/wiki/API:Categorymembers。 - Hypercube

5

请详细说明您要做什么?您尝试了什么?出现了什么错误信息?您的表述不太清楚...

您尝试过哪些库?如果您不是恶意攻击,下载WM内容没有任何限制。我从未听说过有任何限制。某些用户代理被禁止编辑以避免愚蠢的垃圾邮件,但实际上,我从未听说过有下载限制。

如果您想要爬取大量图片并通过Commons下载它们,那么您正在行使错误的方法(tm)。如果您只需要获取一些图片,从10到200张不等,您应该能够在几行代码中编写一个不错的工具,前提是您遵守了节流要求:当API要求您放慢速度时,如果您不这样做,系统管理员可能会将您踢出。

如果您需要完整的图像转储(我们谈论的是几TB),请在wikitech-l上询问。在较少的图像时,我们有可用的种子文件,现在更加复杂,但仍然可以实现

关于机器人账户。您对系统有多深入的了解?您需要一个机器人账户进行快速、无监督的编辑。机器人特权还可以打开一些设施,例如增加查询大小。但请记住:机器人账户只是一个增强的用户账户。您尝试过使用经典账户运行任何内容吗?


1
谢谢,这很有帮助。我有一个植物网站,想从WikiMedia Commons中包含一些图片。我针对特定类别运行了一个查询,使用http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php获取图像列表,然后再针对http://toolserver.org/~magnus/commonsapi.php运行另一个查询以获取每个图像的元数据。然后我在python脚本中使用urllib.urlretrieve来获取实际的图像。虽然我刚刚再次尝试,它起作用了,wget也一样。嗯,可能我的url格式有错误。 - tomvon
我不需要完整的转储,只需要一些图片。我还想创建一个Wordpress插件,让您更轻松地搜索WC并添加图片到您的网站(具有适当的归属)。您知道有关限制限制的信息在哪里吗?我已经在WC上进行了相当广泛的阅读,但似乎没有看到有关限制的任何信息。我肯定要尊重使用条款。 - tomvon
请参阅http://www.mediawiki.org/wiki/Manual:Maxlag_parameter了解限流。请注意,这只是一个建议,因此如果您从未看到过“maxlag”错误或被阻止/自动阻止/速率限制的错误代码,则可能从未被限流或阻止。 - Nicolas Dumazet

1
请注意,以前使用LWP有一个问题:它不是理论上的问题,而是实际上的问题,代理可以在已经过度负荷的服务器上创建大量负载。代理用户可以遵循明智的策略来减少负载-请在www.mediawiki.org或en:Village pump - Technical上咨询。

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接