更改 Wget/Curl 中的User Agent
Wget/Curl 应用程序是一种非交互式工具,可使用 HTTP、HTTPS 或 FTP 协议从服务器下载数据。本文将重点关注 HTTP 和 HTTPS 协议,因为用户代理值与 FTP 协议无关。
有时您需要下载网页,模拟不同的浏览器。某些网站可能会根据用于请求页面的浏览器输出不同的 html 代码。
通过修改 http/https 请求中的 User Agent 标头,您可以告诉服务器您使用的是什么浏览器。
用户代理 (UA) 字符串是包含在HTTP标头中的信息,代表用户执行操作。当您从浏览器连接到网站时,UA 会通知网站请求来自哪个浏览器、版本号和操作系统。
服务器可能对特定的用户代理有不同的响应。因此,您可能会发现自己需要更改 UA 字符串。
在本教程中,学习如何使用 设置或更改用户代理
当您使用curl发送HTTP 请求时,它以“curl/version.number”格式发送用户代理信息。
在撰写本文时最新的稳定版本是7.72.0。因此,HTTP 请求中的 UA 字符串将是:“curl/7.72.0”。
有几种方法可以使用curl命令设置或更改用户代理。
使用 curl 更改用户代理
要将 curl 用户代理更改为不同的浏览器,请添加-A带有所需用户代理字符串的选项:curl -A "user-agent-name-here" [URL]
要通过模拟Firefox 81用户代理向网页example.com发送请求,您可以运行:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" https://example.com/"
- 使用 Wget 更改用户代理
Wget 能够使用“-a”参数轻松修改用户代理值,如下例所示。
修改 Wget 中的 User Agent:
wget -U "这里的用户代理" "http://kfc.im"
下面的示例将模拟 Internet Explorer 6 从 www.google.com 请求页面
wget -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "http://www.google.com"
如果网页设计为根据浏览器显示不同的输出,则上面的示例将显示输出,就像您从 Internet Explorer 6 连接到 Web 服务器一样。
下面是有关一些常见用户代理字符串的列表
Google Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Mozilla Firefox
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
Microsoft Edge
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
Microsoft Internet Explorer 6 / IE 6
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Microsoft Internet Explorer 7 / IE 7
Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
Microsoft Internet Explorer 8 / IE 8
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Microsoft Internet Explorer 9 / IE 9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)
Microsoft Internet Explorer 10 / IE 10
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)
Microsoft Internet Explorer 11 / IE 11
Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
Apple iPad
Mozilla/5.0 (iPad; CPU OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4
Apple iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
Googlebot (Google Search Engine Bot)
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Bing Bot (Bing Search Engine Bot)
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
Samsung Phone
Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G570Y Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
Samsung Galaxy Note 3
Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N900 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36
Samsung Galaxy Note 4
Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-N910F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
Google Nexus
Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7
HTC
Mozilla/5.0 (Linux; Android 7.0; HTC 10 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36
Curl
curl/7.35.0
Wget
Wget/1.15 (linux-gnu)
Lynx
Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23
本文系作者 @Leo 原创发布在开封菜博客站点。未经许可,禁止转载。
评论