概述
爬虫原理及反爬虫机制
关于爬虫
爬虫原理
反爬虫机制
1.检验数据头User-Agent反爬虫机制解析:
2.访问频率限制或检验
3.蜜罐技术
反爬虫机制的应对方法
1.设定Request Headers中的User-Agent
2.设定随机访问频率
3.代理IP或者分布式爬虫
3.对于蜜罐技术可以采用定向爬虫
关于爬虫
爬虫原理
如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,
沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;
从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;
爬虫的基本流程:
模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
反爬虫机制
1.检验数据头User-Agent反爬虫机制解析:
当我们使用浏览器访问网站的时候,浏览器会发送一小段信息给网站,我们称为Request Headers,在这个头部信息里面包含了本次访问的一些信息,例如编码方式,当前地址,将要访问的地址等等。这些信息一般来说是不必要的,但是现在很多网站会把这些信息利用起来。其中最常被用到的一个信息,叫做“User-Agent”。网站可以通过User-Agent来判断用户是使用什么浏览器访问。不同浏览器的User-Agent是不一样的,但都有遵循一定的规则。
但是如果我们使用Python的Requests直接访问网站,除了网址不提供其他的信息,那么网站收到的User-Agent是空。这个时候网站就知道我们不是使用浏览器访问的,于是它于是它就可以拒绝我们的访问。
2.访问频率限制或检验
大多数情况下,我们遇到的是访问频率限制。如果你访问太快了,网站就会认为你不是一个人。这种情况下需要设定好频率的阈值,否则有可能误伤。如果大家考过托福,或者在12306上面买过火车票,你应该会有这样的体会,有时候即便你是真的用手在操作页面,但是因为你鼠标点得太快了,它都会提示你: “操作频率太快…”。
另外,还可以检验访问频率是否每一次都相同,如果都相同,那么一定是爬虫了.
3.蜜罐技术
蜜罐这个词,最早是来自于网络攻防中。一方会故意设置一个或者几个服务器,故意留下漏洞,让另一方轻易的入侵进来。这些被故意设置的服务器,就叫做蜜罐。里面可能安装了监控软件,用来监控入侵者。同时,蜜罐还可以拖延入侵者的时间。
在反爬虫的机制中,也有一种蜜罐技术。网页上会故意留下一些人类看不到或者绝对不会点击的链接。由于爬虫会从源代码中获取内容,所以爬虫可能会访问这样的链接。这个时候,只要网站发现了有IP访问这个链接,立刻永久封禁该IP + User-Agent + Mac地址等等可以用于识别访问者身份的所有信息。这个时候,访问者即便是把IP换了,也没有办法访问这个网站了。给爬虫造成了非常大的访问障碍。
反爬虫机制的应对方法
1.设定Request Headers中的User-Agent
检查User-Agent是一种最简单的反爬虫机制,而通过设定Request Headers中的User-Agent,可以突破这种机制。
2.设定随机访问频率
遇到访问频率限制可以采用设定随机访问频率的方式来突破.
3.代理IP或者分布式爬虫
另外,如果对页的爬虫的效率有要求,那就不能通过设定访问时间间隔的方法来绕过频率检查了,可以采用代理IP或者分布式爬虫:
代理IP访问可以解决这个问题。如果用100个代理IP访问100个页面,可以给网站造成一种有100个人,每个人访问了1页的错觉。这样自然而然就不会限制你的访问了。
分布式爬虫会部署在多台服务器上,每个服务器上的爬虫统一从一个地方拿网址。这样平均下来每个服务器访问网站的频率也就降低了。由于服务器是掌握在我们手上的,因此实现的爬虫会更加的稳定和高效。
3.对于蜜罐技术可以采用定向爬虫
由于定向爬虫的爬行轨迹是由我们来决定的,爬虫会访问哪些网址我们都是知道的。因此即使网站有蜜罐,定向爬虫也不一定会中招。
参考博客:
https://www.cnblogs.com/sss4/p/7809821.html
https://blog.csdn.net/lujuntong/article/details/81952519
————————————————
版权声明:本文为CSDN博主「Archer__Ye」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Archer__Ye/article/details/89609280
最后
以上就是满意板栗为你收集整理的爬虫原理及反爬虫机制以及反爬虫方法的应对策略的全部内容,希望文章能够帮你解决爬虫原理及反爬虫机制以及反爬虫方法的应对策略所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复