Python反爬虫伪装浏览器进行爬虫


Posted in Python onFebruary 28, 2020

对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作

简单的直接添加请求头,将浏览器的信息在请求数据时传入:

打开浏览器--打开开发者模式--请求任意网站

如下图:找到请求的的名字,打开后查看headers栏,找到User-Agent,复制。然后添加到请求头中

Python反爬虫伪装浏览器进行爬虫

代码如下:

import requests
url = 'https://www.baidu.com'
headers ={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36'
    }
rq = requests.get(url=url, headers=headers)
print(rq.text)

更深的伪装浏览器,添加多个浏览器信息,每次请求的时候随机发送浏览器信息,让服务器了解不是一个浏览器一直在访问,(可以百度查找user-agent)

代码如下:

import requests
import random

url = 'https://www.baidu.com'
headers_lists =(
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36',
    'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Maxthon2.0',
    'Opera/9.80(Android2.3.4;Linux;Operamobi/adr-1107051709;U;zh-cn)Presto/2.8.149Version/11.10',
    'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1',
    'Mozilla/5.0(Android;Linuxarmv7l;rv:5.0)Gecko/Firefox/5.0fennec/5.0',)

rq = requests.get(url=url,headers={'User-Agent':random.choice(headers_lists)})
print(rq.text)

完整的请求体解释:

以下是笔者访问百度的请求体。

Python反爬虫伪装浏览器进行爬虫

Accept:浏览器端可以接受的媒体类型

Accept-Encoding:浏览器申明自己接收的编码方法

Accept-Language:浏览器申明自己接收的语言

Connection:keep-alive 客户端和服务器之间还在连接中,如果关闭就是close

Host:请求报头域主要用于指定被请求资源的Internet主机和端口号

User-Agent:使用的操作系统和浏览器的名称和版本

Cookie:是用来存储一些用户信息以便让服务器辨别用户身份的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python版的文曲星猜数字游戏代码
Sep 02 Python
python写xml文件的操作实例
Oct 05 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Python中的pack和unpack的使用
Mar 12 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
python实现快递价格查询系统
Mar 03 Python
Django 删除upload_to文件的步骤
Mar 30 Python
Django如何使用redis作为缓存
May 21 Python
Python 实现进度条的六种方式
Jan 06 Python
使用wxpy实现自动发送微信消息功能
Feb 28 #Python
解决ROC曲线画出来只有一个点的问题
Feb 28 #Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 #Python
利用python画出AUC曲线的实例
Feb 28 #Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 #Python
AUC计算方法与Python实现代码
Feb 28 #Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 #Python
You might like
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
php单例模式示例分享
2015/02/12 PHP
joomla数据库操作示例代码
2016/01/06 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python3实现飞机大战
2020/11/29 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
外企C语言笔试题
2013/11/10 面试题
中科创达面试题
2016/12/28 面试题
2014年中班元旦活动方案
2014/02/14 职场文书
法人代表授权委托书
2014/04/08 职场文书
小学语文业务学习材料
2014/06/02 职场文书
2015年公司新年寄语
2014/12/08 职场文书
个人政治思想总结
2015/03/05 职场文书
董事会决议范本
2015/07/01 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server