吴思奇的个人博客(⁄ ⁄•⁄ω⁄•⁄ ⁄)~

07月 13

Python爬虫UA伪装

1. User-Agent是什么

简称UA,中文名为用户代理。它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。网站可以通判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,对于爬虫来说,UA就是标明身份的第一层标识。User-Agent是请求头的一部分。会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫,一般网站会认为是非法请求,直接会拒绝访问,如果是用户浏览器,就会正常应答。

UA伪装:让爬虫对应的请求载体身份标识伪装成某一浏览器。

以Edge浏览器为例,Edge的User-Agent为

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37

获取Edge的User-Agent也很简单,地址栏输入edge://version/ 就能看到。
edge-ua.jpg

使用爬虫请求网页时,如果使用requests的GET直接请求,就会得到如下结果:
1.jpg
User-Agent直接显示为requests的版本号,网站一眼就知道你在用爬虫,从而封锁。所以用爬虫的第一步就得对请求头进行伪装。
简单处理一下下:

import requests
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37"
}
response = requests.get("http://www.httpbin.org/get",headers=headers)
print(response.text)

2.jpg

可以看到,User-Agent已经被替换为我们想要的浏览器的标识了,但是这只是一个请求头,为了避免同一个请求头频繁访问,可以使用多个进行随机调用。

3.jpg

2. fake-useragent

简单的说,fake_useragent就像是你的女朋友,能帮助你生成user-agent,从而快乐惨。
fake_useragent作为Python中的第三方模块,它将给我们返回一个随机封装了好的头部信息,我们直接使用即可

安装

pip install fake_useragent

更新

pip install -U fake-useragent

显示版本

import fake_useragent
print(fake_useragent.VERSION)

示例

#导入
from fake_useragent import UserAgent


#对应的浏览器头部信息
print(ua.ie) #ie
print(ua.chrome) #chrome
print(ua.opera) #opera
print(ua.firefox) #firefox
print(ua.safari) #safari

#随机生成(经常使用的)
print(ua.random)

fake_useragent提供了很多User-Agent,使用的时候,就不用担心重复的问题了。
当然User-Agent只是第一步,再配合ip代理池一起使用的话,爬虫的伪装会更强。


转载请注明出处(https://wusiqi.cn/archives/585/)
来源网站:547的Blog - 萌萌哒 ~

标签:none

还不快抢沙发

添加新评论

关于我

90后/留学党/不可爱的蓝孩子
欢迎来新浪微博找我玩
Email:admin@wusiqi.cn

最新文章

最近回复

  • Popette:为什么我的Walkman NW-F806日版,没办法修改语言啊
  • Ether:感谢,今天手贱又更新了系统,之前1903的改过的BIOS微码又寄...
  • X99:谢谢 解决了我的问题
  • WuSiqi:感谢提醒,已经修复啦。最近工作太忙,都没怎么看这个破站。哈哈哈哈
  • 丘先森:好用,记录一下。你好你网址的SSL过期了。
  • WuSiqi:微信:2.8.0.112到最新版本都支持 QQ:9.2.3.26...
  • chen:博主,请问下这个补丁对QQ和微信的版本有限制吗?
  • teidl:怎么会有高增益 高增益不是有单独的放大电路么
  • ete:到了各种事情导致心情很不好
  • nzeo:谢谢!解决了我的问题
  • 友情链接

    其它