概念
User-Agent 即用户代理,简称“UA”,它是一个特殊字符串头。网站服务器通过识别 “UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。而网站服务器则通过判断 UA 来给客户端发送不同的页面。
绝大多数网站都具备一定的反爬能力,禁止网爬虫大量地访问网站,反爬虫。
网站通过识别请求头中 User-Agent 信息来判断是否是爬虫访问网站。如果是,网站首先对该 IP 进行预警,对其进行重点监控,当发现该 IP 超过规定时间内的访问次数, 将在一段时间内禁止其再次访问网站。
常见UserAgent
系统 | 浏览器 | User-Agent字符串 |
---|---|---|
Mac | Chrome | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36 |
Mac | Firefox | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:65.0) Gecko/20100101 Firefox/65.0 |
Mac | Safari | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15 |
Windows | Edge | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763 |
Windows | IE | Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko |
Windows | Chrome | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36 |
iOS | Chrome | Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/31.0.1650.18 Mobile/11B554a Safari/8536.25 |
iOS | Safari | Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 |
Android | Chrome | Mozilla/5.0 (Linux; Android 4.2.1; M040 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36 |
Android | Webkit | Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; M351 Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 |
如何在爬虫中查看自己的User-Agent?
r.request.headers
如何伪装成正常的浏览器?
1、先去浏览器中,复制出正常的User-Agent,(右键-检查-网络-请求头-user-agent)
2、编写一个字典,把上面得到的ua,存入
hd = {"User-Agent":"复制过来的真实UA"}
3、伪装自己是一个正常的浏览器
r2 = requests.get(url, headers=hd)
自己编写构造User-Agent池伪装
ua_list = ['ua1', 'ua2', 'ua3']
每次随机选择一个作为user-agent
使用第三方库来伪装UA。
fake-useragent
库是一个专门用于生成伪装身份的Python库,可以让我们在网络爬虫、自动化测试等场景中轻松绕过一些反爬机制。它主要有以下特点:
- 使用简单:只需要简单地调用一个函数,就可以轻松地生成各种浏览器的User-Agent。
- 数据丰富:包含了大量现代浏览器、操作系统等的User-Agent数据。
- 自动更新:可以根据需要自动更新User-Agent数据,保持数据的新鲜度。
pip install fake-useragent
from fake_useragent import UserAgent
ua = UserAgent()
# 随机生成一个User-Agent
random_user_agent = ua.random
print(random_user_agent)
# 生成Chrome浏览器的User-Agent
chrome_user_agent = ua.chrome
print(chrome_user_agent)
# 生成Firefox浏览器的User-Agent
firefox_user_agent = ua.firefox
print(firefox_user_agent)