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的装饰器用法学习笔记
Jun 24 Python
Python 登录网站详解及实例
Apr 11 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Python API自动化框架总结
Nov 12 Python
Python求平面内点到直线距离的实现
Jan 19 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python自动化之如何利用allure生成测试报告
May 02 Python
Python Django项目和应用的创建详解
Nov 27 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介绍篇
2010/10/26 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
iphone刘海屏页面适配方法
2019/05/07 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
pyqt5中动画的使用详解
2020/04/01 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
教育实践活动对照检查材料
2014/09/23 职场文书
检讨书1000字
2014/10/11 职场文书
个人党性锻炼总结
2015/03/05 职场文书
老公出轨后的保证书
2015/05/08 职场文书
商务信函英语问候语
2015/11/10 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
使用Redis实现分布式锁的方法
2022/06/16 Redis