0


网络爬虫爬取时,被封的原因以及防止被封IP策略

策略一:建立IP池

内容比较复杂我就不在此一一细讲如何建立IP池

优点:

爬取速度很快,IP封了之后换一个新的就好

缺点:

设计程序很复杂

策略二:使用延时爬取

优点:

可以一直爬取(挂着就行)

成本低,

上手比较简单

缺点:

爬取速度慢

接下来是理论部分:

什么是封IP?

当我们快乐的爬取网站数据的时候,爬着爬着就啥也爬取不下来了,我们检查requests,发现根本请求不了网站的源码,这个时候,很有可能是我们上网的IP被网站给封了。我们频繁的访问网站被检测为有可能是恶意攻击,网站就把我们上网的IP封锁了,所有通过这个IP上网的设备,都不能访问这个网站。

为什么会被检测到?

当我们的程序连续地访问网站时,做出了人类无法做出的一系列的举动,就很容易被判断为程序。如:

1、访问速度太快,马不停蹄的打开了很多个网站链接

2、访问太规律,比如规律的每秒下载一次网站信息,人类根本无法这么规律。

3、访问太流畅,刚打开一个网址,马上就下好了自己需要的图片,且每次都是如此

延时防被封法:

需要引入模块

import time
​import random

​

需使用函数

x = random.uniform(1, 3)
    time.sleep(x)

原理:

random.uniform(x,y)是随机从x(包括x)到y(不包括y)的随机数,这个函数可以使得我们代码的访问显得更像一个人类(因为人类的点击所花的时间间隔是随机的)

time.sleep(x)则是让整个代码停止x秒,这样,就是实现了代码的随机时间休息,更显得像一个真人在访问网站,不容易被检测。

标签: 网络爬虫 爬虫 ip

本文转载自: https://blog.csdn.net/ndyysheep/article/details/126583513
版权归原作者 ndyysheep 所有, 如有侵权,请联系我们删除。

“网络爬虫爬取时,被封的原因以及防止被封IP策略”的评论:

还没有评论