Python反爬虫伪装浏览器进行爬虫
作者:Tynam.Yang 发布时间:2023-07-05 22:33:38
标签:Python,反,爬虫,伪装
对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作
简单的直接添加请求头,将浏览器的信息在请求数据时传入:
打开浏览器--打开开发者模式--请求任意网站
如下图:找到请求的的名字,打开后查看headers栏,找到User-Agent,复制。然后添加到请求头中
代码如下:
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)
完整的请求体解释:
以下是笔者访问百度的请求体。
Accept:浏览器端可以接受的媒体类型
Accept-Encoding:浏览器申明自己接收的编码方法
Accept-Language:浏览器申明自己接收的语言
Connection:keep-alive 客户端和服务器之间还在连接中,如果关闭就是close
Host:请求报头域主要用于指定被请求资源的Internet主机和端口号
User-Agent:使用的操作系统和浏览器的名称和版本
Cookie:是用来存储一些用户信息以便让服务器辨别用户身份的
来源:https://www.cnblogs.com/tynam/p/8809222.html


猜你喜欢
- 我的SQL Server2005 一直正常使用但昨天出现了错误,如图。经过上网查,网上说的办法试了好多都没有解决这个问题。在经过多次的摸索后
- >>> "hello".encode("hex") '68656c6c6f
- 一、 申请企业微信账号,申请地址 https://qy.weixin.qq.com/二、 登陆企业微信账图一图二2、添加微信账号图
- 前言:在Python里面,只要类型对象实现了__iter__,那么它的实例对象就被称为可迭代对象(Iterable),比如字符串、元组、列表
- 安装Apache1.安装yum -y install httpd2.开启apache服务systemctl start httpd.serv
- 需要安装pyechartspip install pyecharts -U 创建【demo6.py】并输入以下编码:from py
- kruskal算法基本思路:先对边按权重从小到大排序,先选取权重最小的一条边,如果该边的两个节点均为不同的分量,则加入到最小生成树,否则计算
- jsp表达式方式: <center> <table border="1"> <% for
- python3与python2的还是有诸多的不同,比如说在2中:print "Hello,World!" r
- Mysql分页采用limt关键字select * from t_order limit 5,10; #返回第6-15行数据select *
- 今天看了一下数据结构的书,发现其实数据结构没有几种,线性表,数组,字符串,队列和栈,等等,其实是一回事,然后就是树结构,图结构。数据结构的理
- 颜色搭配是件头疼的事,工作空隙,利用range做个简单的手动调色,可得到rgb值和相应的十六进制色值。因为用到range标签,建议使用搜狗、
- JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript
- 1.现在有一个需求:我想在monitor应用中导入data文件夹下的apolos.py中的tes()函数并执行。打开monitor应用的视图
- 在DreamWeaver中编写CSS,这种编写习惯本站(twocity.cn)并不提倡,不过由于"可视化"和操作简便,使
- 为了把事情变成简单化,我在多个Oracle数据上建立统一的检查数据库账户,并且账户只能访问特定的几个视图(需要查询的sql已生成视图),具体
- 最近用python写了个小说程序的api,想着用 vue 做个系统管理数据,脑子里出现的是这个画面: 但是这种样式的管理后台已经做
- 以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例Excel 通过VBA连接数据库需要安装相应的Oracle客户
- 本文实例讲述了Python文本统计功能之西游记用字统计操作。分享给大家供大家参考,具体如下:一、数据xyj.txt,《西游记》的文本,2.2
- 1、shutdown normal 正常方式关闭数据库。 2、shutdown imme