Python爬虫突破反爬虫机制知识点总结

 更新时间:2021年11月10日 08:42:03   作者:pycn  
在本篇文章里小编给大家整理了一篇关于Python爬虫突破反爬虫机制知识点总结内容,有需要的朋友们可以跟着学习下。

1、构建合理的HTTP请求标头。

HTTP的请求头是一组属性和配置信息,当您发送一个请求到网络服务器时。因为浏览器和Python爬虫发送的请求头不同,反爬行器很可能会被检测到。

2、建立学习cookie。

Cookie是一把双刃剑,有它不行,没有它更不行。站点将通过cookie来追踪你的访问情况,如果发现你有爬虫行为,将立即中断您的访问,例如,填写表格时速度过快,或在短时间内浏览大量网页。而且对cookies的正确处理,也可以避免许多采集问题,建议在收集网站的过程中,检查一下这些网站生成的cookie,然后想想哪个是爬虫需要处理的。

3、正常时差路径。

Python爬行器不应破坏采集速度的原则,尽可能在每一页访问时间内增加一小段间隔,能有效地帮助您避免反爬行。

4、使用代理IP,对已经遇到过反爬虫的分布式爬虫来说,使用代理IP将成为您的首选。

谈到Python爬虫的发展历史,那简直就是与反爬虫相恋的血泪史。因特网上,有网络爬虫的地方,绝对少不了反爬虫的身影。对网站进行反爬虫的截取,前提是要正确区分人与网络机器人,发现可疑目标时,通过限制IP地址等措施,阻止您继续访问。

知识点扩展:

python3爬虫--反爬虫应对机制

前言:

反爬虫更多是一种攻防战,网络爬虫一般有网页爬虫和接口爬虫的方式;针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面:

①访问终端限制:这种可通过伪造动态的UA实现;

②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制;

③访问时间限制:延迟请求应对;

④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行为必然是先进入问题页,在进入回答详情页,有严格的请求顺序,如果之间跳过前面请求页面就有可能被判定为到了,通过伪造请求头可以解决这个问题;

具体的反爬虫策略:

①验证码

应对:简单的验证码可通过机器学习识别,准确率可高达,50-60%;复杂的可通过专门的打码平台人工打码(依据验证码的复杂度,打码工人平均每码收1-2分钱)

②封ip(容易误杀)

应对:通过ip代理池/vps拨号获取ip方式,可用低成本的获取几十万ip

③滑动验证码:相比常规的验证码易被机器学习识别,滑动验证有一定的优势

应对:模拟滑动来验证

④关联上下文/防盗链:利用token/cookie的记录能力,来关联请求的上下文,通过判断请求是否走了完整的流程来判定是否是爬虫;重而反爬虫(知乎,头条都有该机制)

应对:分析协议,进行全量模拟

⑤javascript 参与运算:利用简单爬虫无法进行json运算的特征,对中间结果进行js解析/运算

应对:可以通过自带 js 引擎模块或直接使用 phantomjs 等无端浏览器进行自动化解析

⑥session封禁:session请求超过阈值,从而封禁(容易导致误杀)

⑦UA封禁:ua请求超过阈值,从而封禁(容易导致误杀)

⑧web-fongt反爬虫机制:源代码不展示内容,而是提供字符集,在页面使用了font-face定义了字符集,并通过unicode去映射展示

⑨其他:比如代码混淆、动态加密方案、假数据等方式

到此这篇关于Python爬虫突破反爬虫机制知识点总结的文章就介绍到这了,更多相关Python爬虫如何突破反爬虫机制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python TinyDB轻量级文档导向数据库轻松存储访问

    python TinyDB轻量级文档导向数据库轻松存储访问

    这篇文章主要为大家介绍了python TinyDB轻量级文档导向数据库轻松存储访问数据使用探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python中实现ipaddress网络地址的处理

    Python中实现ipaddress网络地址的处理

    ipaddress库提供了处理IPv4与IPv6网络地址的类。这些类支持验证,查找网络上的地址和主机,以及其他常见的操作,本文就来介绍一下这些方法的使用,感兴趣的一起来了解一下
    2021-06-06
  • Python实现合并同一个文件夹下所有PDF文件的方法示例

    Python实现合并同一个文件夹下所有PDF文件的方法示例

    这篇文章主要介绍了Python实现合并同一个文件夹下所有PDF文件的方法,涉及Python针对pdf文件的读取、判断、解密、写入合并等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • Python中用函数作为返回值和实现闭包的教程

    Python中用函数作为返回值和实现闭包的教程

    这篇文章主要介绍了Python中用函数作为返回值和实现闭包的教程,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • JSONLINT:python的json数据验证库实例解析

    JSONLINT:python的json数据验证库实例解析

    本文介绍的 jsonlint 启发自 python 的表单验证工具 wtforms,wtforms 通过继承 Form 类也能进行 json 数据验证,下面通过一些例子给大家详细介绍,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-11-11
  • Tensorflow加载Vgg预训练模型操作

    Tensorflow加载Vgg预训练模型操作

    这篇文章主要介绍了Tensorflow加载Vgg预训练模型操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python编程中对文件和存储器的读写示例

    Python编程中对文件和存储器的读写示例

    这篇文章主要介绍了Python编程中对文件和存储器的读写示例,包括使用cPickle储存器存储对象的例子,需要的朋友可以参考下
    2016-01-01
  • tensorflow实现加载mnist数据集

    tensorflow实现加载mnist数据集

    这篇文章主要为大家详细介绍了tensorflow实现加载mnist数据集,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 最新Pygame zero最全集合

    最新Pygame zero最全集合

    这篇文章主要介绍了最新Pygame zero最全集合,通过本文学习知道update函数是pygame zero自带的函数,每秒运行60次,当然也可以修改,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 基于Python实现的百度贴吧网络爬虫实例

    基于Python实现的百度贴吧网络爬虫实例

    这篇文章主要介绍了基于Python实现的百度贴吧网络爬虫,实例分析了Python实现网络爬虫的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论