爬虫的使用过程中, 网站最简单的反爬虫就是验证发起请求的客户端是否为浏览器, 因此需要爬虫模拟浏览器对网站发起请求.
这里介绍一个 fake_useraent
1, 伪造 useragent 字符串, 每次请求都使用随机生成的 useragen
为了减少复杂度, 随机生成 UA 的功能通过第三方模块库 fake-useragent 实现, 使用 pip 进行安装
pip install fake-useragent
2, 生成一个 useragen 字符串只需要如下代码
- from fake_useragent import UserAgent
- ua = UserAgent()
各浏览器的 User-Agent
这个库还有一个其他的功能, 就是可以随机各浏览器的的 useragen:
- print(ua.IE)
- Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)
Opera 浏览器的 useragen:
- print(ua.opera)
- Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00
Chrome 浏览器的 useragen:
Firefox 浏览器的 useragen:
- print(ua.Firefox)
- Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
Safari 浏览器的 useragen:
- print(ua.Safari)
- Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
随机 User-Agent
写爬虫最实用的就是可以随意变换 headers, 一定要有随机性
在这里写了三个随机生成 UA, 三次打印都不一样, 随机性很强, 十分方便
- print(ua.random)
- print(ua.random)
- print(ua.random)
- Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/37.0.2062.124 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36
Ps: 也可以自己写一个 useragen 列表用于 random 作为 useragent
这里是代码案例:
- # 用于爬取的 url
- from fake_useragent import UserAgent
- from bs4 import *
- import requests
- url="http://baidu.com"
- ua = UserAgent()
- a=ua.random #随机的一个 user-agent
- headers={
- "User-Agent": a
- }
- res=requests.get(url,headers=headers) #获取网页内容
- t=res.text #返回的响应字符串
- # 这里模拟的时候只需要写 user-agent 字段即可
来源: http://www.bubuko.com/infodetail-2976325.html