关于反反爬
前言
对于Python基础的爬虫,看一遍基本上都会了,爬虫的流程套路也是一个样子的,但是对于某一些网站上面的数据,很多人还是没有办法,只要你一步一步解决这三个问题,就能轻松进阶爬虫。
不要以为写好一个爬虫程序就可以出师了,此时还有更多的问题在前面等着你,你要含情脉脉地看着你的爬虫程序,问自己三个问题:
爬虫抓取数据后是正当用途么?
爬虫会把目标网站干掉么?
爬虫会被反爬虫干掉么?
关于反爬虫的问题才是你爬虫程序强壮与否的关键因素,什么是反爬虫?
当越来越多的爬虫在互联网上横冲直撞后,网页资源维护者为了防止自身数据被抓取,开始进行一系列的措施来使得自身数据不易被别的程序爬取,这些措施就是反爬虫
比如:
检测IP访问频率
资源访问速度
链接是否带有关键参数
验证码检测机器人
ajax混淆
js加密
等等
对于目前市场上的反爬虫,爬虫工程师常有的反反爬虫方案是下面这样的:
不断试探目标底线,试出单IP下最优的访问频率
构建自己的IP代理池
维护一份自己常用的UA库
针对目标网页的Cookie池
需要JS渲染的网页使用无头浏览器进行代码渲染再抓取
一套破解验证码程序
扎实的JS知识来破解混淆函数
爬虫工程师的进阶之路其实就是不断反反爬虫,可谓艰辛,但换个角度想也是乐趣所在
关于框架
爬虫有自己的编写流程和标准,有了标准,自然就有了框架,像Python这种生态强大的语言,框架自然是多不胜数,目前世面上用的比较多的有:
Scrapy
PySpider
Portia
这里不过多介绍,框架只是工具,是一种提升效率的方式,看你选择。
反爬策略
一: User-Agent +Referer检测
解决方案: 伪装浏览器的User-Agent,因为每个浏览器的User-Agent不一样,并且所有
的用户都能使用浏览器。所有每次请求的时候条件浏览器的User-Agent,就能解决UA检测
在检测referer的请求中,携带符合的referer值。
二: js混淆和渲染
js渲染其实就是对HTML页面的修改。比如有一些网页本身没有返回数据,数据是经过js加载之后添加到HTML当中的。当遇到这种情况的时候,我们要知道爬虫是不会执行JavaScript操作。所以需要用其他的方法处理。
解决方案:
1.通过阅读网站js源码,找到关键的代码,并用python实现。
2.通过阅读网站js源码,找到关键的代码,用PyV8,execjs等库直接执行js代码。
3.通过selenium库直接模拟浏览器环境
三:IP限制频次
解决方案:
1.自行设计ip代理池,通过轮换的方式,每次请求携带不同的代理地址。
2.ADSL动态拨号他有个独有的特点,每拨一次号,就获取一个新的IP。也就是它的IP是不固定的。
四:验证码
解决方案:
1.手动识别验证码
2.pytesseract识别简单的验证码
3.对接打码平台
4.机器学习
以上这就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小编 !
关于此文,也可学习;关于反爬虫,看这一篇就够了 (转)
本文来自博客园,作者:小码果,转载请注明原文链接:https://www.cnblogs.com/lsxs-wy/p/15792286.html,谢谢合作!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律