出现这个错误是因为在使用wget或curl
请求资源时被服务器拒绝了,为了防止爬虫等消耗服务器资源,服务器根据你的请求头进行了选择性屏蔽,因此需要修改wget和curl的代理User-Agent来进行伪装。
一、修改wget的User-Agent
1、临时变更wget的UA
在wget前加上参数 -U
,代表设置User Agent
wget www.google.com -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
什么是User Agent,怎么获取,可以参考下面这篇博客,当然你也可以直接用我上面这个。
什么是UserAgent以及使用浏览器查看UserAgent的方法
2、永久变更Wget的UA
修改配置文件/etc/wgetrc,添加下面这一行:
header = User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
上面这个配置后会所有用户生效,如果只需要当前用户生效,可以将上面这行添加进~/.wgetrc,这个文件如果没有的话可以手动创建。
二、修改curl的User-Agent
1、临时变更curl的UA
使用以下参数:
curl https://www.google.com --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
2、永久变更curl的UA
修改配置文件~/.curlrc,添加下面这一行:
–user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
参考:
1、https://www.linpx.com/p/on-an-interesting-play-wget-use.html