wget 匹配正则表达式

wget 匹配正则表达式

首先尝试使用 wget。

我正在尝试使用它来匹配正则表达式并下载从https://tse4.mm.bing.net/th?给定网址开始的所有图像。

然而,这似乎不起作用。

有问题的网址如下:

https://www.bing.com/images/search?q=kary+perry+the+one+that+got+away+cover&scope=images

(我只需要从bing下载有限数量的图片)

我在这里尝试使用这个命令:

wget -nd -r -P save -A '^https://tse4.mm.bing.net/th?' https://www.bing.com/images/search?q=kary+perry+the+one+that+got+away+cover&scope=images

但它会下载 robots.txt 文件。

我在这里做错了什么?谢谢

答案1

robots.txt文件的目的是阻止您在网站上执行机器人操作。wget默认情况下将遵守文件的意愿robots.txt

网站所有者使用该/robots.txt文件向网络机器人提供有关其网站的说明;这就是所谓的Robots Exclusion Protocol

它的工作原理如下:一个机器人想要访问一个网站 URL,例如http://www.example.com/welcome.html。在此之前,它首先检查http://www.example.com/robots.txt,并发现:

User-agent: *
Disallow: /

User-agent: *意味着本部分适用于所有机器人。告诉Disallow: /机器人它不应该访问网站上的任何页面。


在bing的robots.txt文件中我们可以看到以下内容:

User-agent: *
Disallow: /account/
Disallow: /bfp/search
Disallow: /bing-site-safety
Disallow: /blogs/search/
Disallow: /entities/search
...
Allow: /shopping/$
Allow: /shopping$
...
Disallow: /th?
Disallow: /th$
...

所以他们不希望你从该路径大量下载,你可以尝试/shopping一下。

如果您找到绕过该robots.txt文件并执行您想要的操作的方法,您将采取恶意行为,该网站可能会禁止您的 IP。


robotstxt.org


结论

你可能没有做错任何事(我无论如何都不是 wget 专家,所以也可能存在语法错误),但该操作是不允许的。

相关内容