网站不接受wget用户代理标头

Joe*_*nin 43 user-agent http wget

当我运行此命令时:

wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"  http://yahoo.com
Run Code Online (Sandbox Code Playgroud)

...我得到了这个结果(文件中没有其他内容):

<!-- hw147.fp.gq1.yahoo.com uncompressed/chunked Wed Jun 19 03:42:44 UTC 2013 -->
Run Code Online (Sandbox Code Playgroud)

但是当我wget http://yahoo.com--user-agent选择地运行时,我得到整页.

用户代理与我当前浏览器发送的标头相同.为什么会这样?有没有办法确保用户代理在使用wget时不会被阻止?

fil*_*p26 74

似乎雅虎服务器User-Agent在案例Accept标题设置为的基础上做了一些启发式操作*/*.

接受:text/html

为我做了诀窍.

例如

wget  --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"  http://yahoo.com
Run Code Online (Sandbox Code Playgroud)

注意:如果您没有声明Accept标题然后wget自动添加Accept:*/*哪个意味着给我任何你拥有的东西.


eri*_*rik 35

我创建了一个~/.wgetrc包含以下内容的文件(从askapache.com获得,但使用较新的用户代理,因为否则它总是不起作用):

header = Accept-Language: en-us,en;q=0.5
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header = Connection: keep-alive
user_agent = Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0
referer = /
robots = off
Run Code Online (Sandbox Code Playgroud)

现在我可以从大多数(所有?)文件共享(流媒体视频)网站下载.