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

作者:Tynam.Yang 时间:2023-07-05 22:33:38 

对于爬虫中部分网站设置了请求次数过多后会封杀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:是用来存储一些用户信息以便让服务器辨别用户身份的

来源:https://www.cnblogs.com/tynam/p/8809222.html

标签:Python,反,爬虫,伪装
0
投稿

猜你喜欢

  • 解决Python3中的中文字符编码的问题

    2022-05-04 04:22:09
  • Python实现对二维码数据进行压缩

    2022-10-22 12:51:59
  • python实现美团订单推送到测试环境,提供便利操作示例

    2023-03-23 13:39:54
  • python数据分析工具之 matplotlib详解

    2023-03-11 21:53:24
  • python基于搜索引擎实现文章查重功能

    2022-01-21 19:25:50
  • 如何在Python 中使用 join() 函数把列表拼接成一个字符串

    2022-10-15 14:58:38
  • Python的动态重新封装的教程

    2023-08-23 15:26:39
  • Navicat修改MySQL数据库密码的多种方法

    2024-01-27 08:26:20
  • Python访问Redis的详细操作

    2022-03-13 13:22:25
  • Python如何对齐字符串

    2023-05-30 01:21:11
  • Win10安装MySQL5.7.18winX64 启动服务器失败并且没有错误提示

    2024-01-27 04:59:14
  • Django 对IP访问频率进行限制的例子

    2022-02-14 05:40:38
  • python 统计list中各个元素出现的次数的几种方法

    2022-12-09 10:04:01
  • 编写PHP脚本使WordPress的主题支持Widget侧边栏

    2023-11-23 20:27:13
  • 可以拖动的div 实现代码第1/2页

    2024-03-19 17:46:20
  • layui table 表格上添加日期控件的两种方法

    2024-02-25 10:05:14
  • vue组件间传值的方法你知道几种

    2024-04-28 09:31:32
  • Python利器openpyxl之操作excel表格

    2022-11-16 18:46:58
  • Python轻松破解加密压缩包教程详解

    2021-04-12 13:26:45
  • python之数字图像处理方式

    2023-02-02 18:27:09
  • asp之家 网络编程 m.aspxhome.com