如何使用 wget linux 命令镜像维基百科页面? [已关闭]

问题描述 投票:0回答:3

我想使用 wget Linux 命令镜像维基百科页面 我用了这个命令

wget --mirror -p --convert-links -P ./folder-mirror /https://en.wikipedia.org/wiki/Portal:Contents/A–Z_index

但我只得到这个文件 机器人.txt

linux web command-line wget mirror
3个回答
8
投票

不要这样做。它会给维基百科网络服务器带来巨大的负载,并且您的 IP 将被阻止。

如果您想要维基百科的镜像,请从 https://dumps.wikimedia.org/ 下载其数据库的转储。截至目前,英文维基的最新完整转储可在以下位置找到:

https://dumps.wikimedia.org/enwiki/20160407/

如果您只需要特定页面的数据,请考虑使用 MediaWiki API


3
投票

机器人排除在wget

中默认开启,以防止人们变得混蛋并递归地吞噬别人的网页及其带宽。 

您可以在

.wgetrc

 文件中将其关闭,或者使用 wget 的 
-e
 开关,例如:
-e robots=off


这并不是说维基百科没有进一步的安全防护措施来确保您的 wget 不会递归下载所有内容,但它会阻止 wget 尊重 robots.txt 和 meta。

如果你仍然碰壁,那么也许可以修改用户代理或类似的东西。


0
投票
嗯,这里的人在提到如何处理 robots.txt 方面提供了一些帮助。您还需要适当地设置您的用户代理。似乎有一种正式的方法可以通过使用 use-agent 字符串让维基媒体知道你是谁,这将防止你因为一次拉取太多而被列入黑名单。正如他们提到的 - 请求淹没服务器对任何人都没有好处,并且可能导致您的 IP 被禁止。

我的用例可能与您的不同:我只是想获取单个 .html 文件 到目前为止,我已经有了这个,它模拟了最新的 Firefox:

wget -e robots=off --span-hosts --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0" https://en.wikipedia.org/wiki/Wikipedia:Stackexchange_and_Reddit
但不幸的是,这是输出:

--2022-04-10 04:09:15--

https://en.wikipedia.org/wiki/Wikipedia:Stackexchange_and_Reddit 正在解析 en.wikipedia.org (en.wikipedia.org)...2620:0:863:ed1a::1, 198.35.26.96 连接到 en.wikipedia.org (en.wikipedia.org)|2620:0:863:ed1a::1|:443... 失败:权限被拒绝。 连接到 en.wikipedia.org (en.wikipedia.org)|198.35.26.96|:443... 失败:权限被拒绝。 重试。

至少这是朝着正确方向迈出的又一步。我应该提到的是,围绕 uset-agent 的“catfishing”主题似乎存在某种禁忌。我浏览过的网站都没有以某种预先打包的方式提供所需的信息。我猜这是因为他们可能会收到删除通知或类似的通知。如果我接近目标,我会尽快再次尝试并编辑我的回复。

© www.soinside.com 2019 - 2024. All rights reserved.