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不带重复的全排列代码
Aug 13 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
Python中pillow知识点学习
Apr 30 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python检测端口IP字符串是否合法
Jun 05 Python
Python 可视化神器Plotly详解
Dec 26 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php之readdir函数用法实例
2014/11/13 PHP
JQuery操作元素的css样式
2015/03/09 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
原生js 实现表单验证功能
2021/02/08 Javascript
Python生成随机MAC地址
2015/03/10 Python
简单的Python2.7编程初学经验总结
2015/04/01 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Sanic框架流式传输操作示例
2018/07/18 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
python实现名片管理器的示例代码
2019/12/17 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
python3让print输出不换行的方法
2020/08/24 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
道德之星事迹材料
2014/05/03 职场文书
党员评议个人总结
2014/10/20 职场文书
财务工作失误检讨书
2015/02/19 职场文书
亮剑观后感600字
2015/06/05 职场文书
会计做账心得体会
2016/01/22 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python