python做反被爬保护的方法

针对如何让Python反爬虫,我们可以列举以下几种方法。

1. 设置请求头 Headers

请求头中的User-Agent给出了客户端的相关信息,网站可以根据User-Agent判断请求来自哪里。默认情况下,Python的requests库并不会发送类似于浏览器的请求头信息,这会被很多网站认为是爬虫程序而被拒绝请求。因此在编写Python爬虫时需要添加请求头信息,伪装成浏览器的请求头信息就可以成功访问了。

你可以构造请求头信息,然后设置到requests请求中,例如:

import requests

headers = {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 "
}

response = requests.get(url, headers=headers)

2. 使用代理

正规网站很少屏蔽代理服务器,所以如果我们使用代理服务器去做爬虫,就比直接使用自己的IP更容易成功。这种方法同样需要设置请求头,使用requests库来发送代理请求。

import requests

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080"
}

response = requests.get(url, proxies=proxies)

需要注意,这里的代理服务器必须是可用的,否则会造成请求失败。同时,很多网站也会对判断代理IP的真实性进行防范。

以上是两种常见的反反爬技巧,可以有效地避免被反爬虫策略拦截。当然,这并不一定是万能的,还需结合实际情况进行调试。

最后,提醒大家,在爬取非自己拥有的数据前,请遵守相关网站的规定,以及相关法律法规。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python做反被爬保护的方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python离线安装openpyxl模块的步骤

    Python是一门流行的编程语言,而openpyxl是Python中处理Excel文件的常用模块。有时候,我们需要进行Python离线安装openpyxl模块。下面是完整步骤: 步骤一:下载openpyxl模块 在某些情况下,由于网络原因,我们无法连接到Python包管理器pip,这时我们需要下载openpyxl的安装文件。在官网下载openpyxl的最新版…

    python 2023年6月3日
    00
  • python爬虫篇之 性能相关

    一.背景   爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,采用串行的方式执行,只能等待爬取一个结束后才能继续下一个,效率会非常低。   需要强调的是:串行并不意味着低效,如果串行的都是纯计算的任务,那么cpu的利用率仍然会很高,之所以爬虫程序的串行低效,是因为爬虫程序是明显的IO密集型程序。   二.同步,异步,回调机…

    爬虫 2023年4月8日
    00
  • python opencv实现简易画图板

    让我来详细讲解关于“Python OpenCV实现简易画图板”的完整攻略。 1. 环境配置 在开始编写Python OpenCV画图板之前,需要安装相关的环境。具体的步骤如下: 安装OpenCV的Python库:使用命令pip install opencv-python进行安装。 安装numpy库:使用命令pip install numpy进行安装。 2. …

    python 2023年5月19日
    00
  • python实现树的深度优先遍历与广度优先遍历详解

    下面是详细讲解“Python实现树的深度优先遍历与广度优先遍历详解”的完整攻略。 1. 什么是树 树是一种非线性数据结构,它由若干个节点组成,每个节点可以有若干个子节点。树节点之间存在一种层次关系,其中上面的节点称根节点,最下面的节点称为叶子节点。 2. 树的遍历 树的遍历是指按照一定的顺序访问树的所有节点。常见的树的遍历方式有深度优先历和广度优先遍历。 2…

    python 2023年5月14日
    00
  • Python实现1-9数组形成的结果为100的所有运算式的示例

    这里是“Python实现1-9数组形成的结果为100的所有运算式的示例”的完整攻略。 需求分析 我们需要找出1-9这9个数字,通过加减乘除等运算,使得它们的运算结果等于100。在这个过程中,我们需要枚举所有的可能性,找到符合条件的表达式。 解决方案 我们可以使用暴力枚举的方法求解,其基本思路是对于所有可能的表达式进行枚举,判断结果是否等于100。由于需要枚举…

    python 2023年6月5日
    00
  • 可以在 Python 中通过 % 运算符进行自定义格式化吗?

    【问题标题】:Can custom formatting through the % operator be done in Python?可以在 Python 中通过 % 运算符进行自定义格式化吗? 【发布时间】:2023-04-04 03:42:02 【问题描述】: 是否可以在 Python 中使用% 运算符以自己特定的方式格式化一个类?我对格式字符串类…

    Python开发 2023年4月6日
    00
  • jieba库的基本介绍及爬虫基本操作

    jieba库基本介绍 jieba库的安装 pip install jieba (cmd命令行)           jieba分词的三种模式 精确模式、全模式、搜索引擎模式 精确模式:把文本精确的切分开,不存在冗余单词 全模式:把文本中所有可能的词语都扫描出来,有冗余 搜索引擎模式:在精确模式基础上,对长词再次切分      爬虫(爬取哔哩哔哩视频弹幕) 导…

    2023年4月8日
    00
  • Python/Mako:通过 Ajax 调用加载到主模板时,脚本标签未从子模板中显示

    【问题标题】:Python/Mako: Script Tag not showing up from Sub Template when Loaded into Main Template via Ajax CallPython/Mako:通过 Ajax 调用加载到主模板时,脚本标签未从子模板中显示 【发布时间】:2023-04-06 05:43:02 【问…

    Python开发 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部