![curl 和 wget 的局限性](https://linux22.com/image/187342/curl%20%E5%92%8C%20wget%20%E7%9A%84%E5%B1%80%E9%99%90%E6%80%A7.png)
我想知道为什么某些 URL 在浏览器选项卡中加载时没有麻烦,但使用wget
和等工具却超时curl
。
下面是一个示例 URL:
https://www.nasdaq.com/market-activity/stocks/gme/news-headlines
我尝试使用curl
and为该网页创建下载脚本wget
,但没有成功(即它们都挂断了)。
wget --adjust-extension -t 2 -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' "https://www.nasdaq.com/market-activity/stocks/gme/news-headlines" -O gme.html
wget --adjust-extension -t 2 -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' "www.nasdaq.com/market-activity/stocks/gme/news-headlines" -O gme.html
curl -o 01.html https://www.nasdaq.com/market-activity/stocks/gme/news-headlines
curl -o 01.html www.nasdaq.com/market-activity/stocks/gme/news-headlines
答案1
他们的网络服务器很可能会查看User-Agent:
请求中的标头,并拒绝服务器来自curl
或wget
类似工具的请求。他们可能会选择这样做,因为他们可能不希望通过脚本访问其 Web 内容。事实上,他们的一部分服务条款(您只需访问他们的网站即可同意)说
服务的使用。要使用我们的服务,您必须:
[...]
不使用任何自动化流程来访问或使用服务,或任何流程(无论是自动还是手动)从服务中捕获数据或内容,或规避任何防止因任何原因未经授权复制或分发服务的机制;
更改User-Agent:
请求中使用的标头需要在工具手册中找到正确的选项,确定在您的用例中使用该选项是否合法,并根据该考虑采取行动。