首先尝试使用 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。
结论
你可能没有做错任何事(我无论如何都不是 wget 专家,所以也可能存在语法错误),但该操作是不允许的。