百科狗-知识改变命运!
--

python怎么做反爬

乐乐1年前 (2023-11-21)阅读数 31#技术干货
文章标签浏览器

网络爬虫,是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。但是当网络爬虫被滥用后,互联网上就出现太多同质的东西,原创得不到保护。于是,很多网站开始反网络爬虫,想方设法保护自己的内容。

python怎么做反爬

一:User-Agent+Referer检测

User-Agent是HTTP协议的中的一个字段,其作用是描述发出HTTP请求的终端的一些信息。

使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

服务器通过这个字段就可以知道访问网站的是什么人。对于不是正常浏览器的用户进行屏蔽。

解决方案:

伪装浏览器的User-Agent,因为每个浏览器的User-Agent不一样,并且所有的用户都能使用浏览器。所有每次请求的时候条件浏览器的User-Agent,就能解决UA检测

Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。例如有一些图片网站在你请求图片的时候,就会检测你的Referer值,如果Referer不符合,不会返回正常的图片。

解决方案:

在检测referer的请求中,携带符合的referer值。

二:js混淆和渲染

所谓JavaScript混淆,基本就是:

1.去掉一些实际没有调用的函数。

2.将零散的变量声明合并。

3.逻辑函数的精简。

4.变量名的简化。具体要看不同的压缩工具的考虑优劣。常见的有UglifyJS、JScrambler等工具。

js渲染其实就是对HTML页面的修改。比如有一些网页本身没有返回数据,数据是经过js加载之后添加到HTML当中的。当遇到这种情况的时候,我们要知道爬虫是不会执行JavaScript操作。所以需要用其他的方法处理。

解决方案:

1.通过阅读网站js源码,找到关键的代码,并用python实现。

2.通过阅读网站js源码,找到关键的代码,用PyV8,execjs等库直接执行js代码。

3.通过selenium库直接模拟浏览器环境

三:IP限制频次

WEB系统都是走http协议跟WEB容器连通的,每次请求至少会产生一次客户端与服务器的tcp连接。

对于服务端来说可以很清楚的查看到,一个ip地址在单位时间内发起的请求。

当请求数超过一定的值之后,就可判断为非正常的用户请求。

解决方案:

1.自行设计ip代理池,通过轮换的方式,每次请求携带不同的代理地址。

2.ADSL动态拨号他有个独有的特点,每拨一次号,就获取一个新的IP。也就是它的IP是不固定的。

四:验证码

验证码(CAPTCHA)是“CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。

这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

解决方案:

1.手动识别验证码

2.pytesseract识别简单的验证码

3.对接打码平台

4.机器学习

以上内容为大家介绍了python怎么做反爬,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)