13

在 Ubuntu 上,我正在尝试使用 wget 下载文件(从脚本)。构建一个程序以每天下载此文件并加载到 hadoop 集群。

但是,wget 失败,并显示以下消息。

wget http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip
--2012-06-16 03:37:30--  http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip
Resolving www.nseindia.com... 122.178.225.48, 122.178.225.18
Connecting to www.nseindia.com|122.178.225.48|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2012-06-16 03:37:30 ERROR 403: Forbidden.

当我在 Firefox 或同等软件中尝试相同的 url 时,它工作得很好。是的,没有涉及许可协议之类的事情......

我错过了关于 wget 的一些基本知识吗?

4

5 回答 5

14

该站点阻止 wget,因为默认情况下 wget 使用不常见的用户代理。要在 wget 中使用不同的用户代理,请尝试:

wget -U Mozilla/5.0 http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip
于 2012-06-15T22:17:25.867 回答
6

利用:

wget -U mozilla http://www.nseindia.com/content/historical/EQUITIES/2012/JUN/cm15JUN2012bhav.csv.zip

一些站点只是阻止 wget 用户代理下载文件。我刚刚用这个命令下载了那个文件。有用。

于 2012-06-15T22:13:29.910 回答
1

我使用curl -O <URL>wget 是因为 wget 不支持 HTTPS 和其他一些协议。

于 2014-05-14T07:54:47.750 回答
1

webapps 或 webservers 可能使用的另一种技术是检查“Referrer”内容标头值。除了指定用户代理之外,可能还需要提供引荐来源网址。

例如,

wget --referer http://freestockphotos.com/Scenery1.html http://freestockphotos.com/SKY/TreeSunset.jpg

如果从“Scenery1.html”页面导航时未发出对目标文件的请求,该主机似乎会拒绝这些请求。

于 2012-07-19T00:36:18.283 回答
0

有些网站只是阻止 wget 用户代理下载文件 wget -U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4' http://yourURL .com

于 2014-07-19T05:41:09.313 回答