电脑
618爬虫
高频率的爬取网站页面会给网站服务器带来巨大压力,网站为了应对爬虫一般会采用一些反爬技术,这就使得我们有时候在爬取网站页面的时候被封了ip,致使我们的ip不能访问网站页面。
遇到这样的网站,我们可以通过降低抓取频率或者设置代理ip来达到抓取数据的目的。降低抓取频率会使我们获取数据的效率降低,在有限的时间里面达不到获取数据的目的。最有效的办法是通过设置代理ip的方式,来获取数据。
运行代码后,可知在免费代理上,筛出了23个可用代理。免费代理适用于需求量较少的情况。以上代码是单线程,在验证代理是否有效的时候,代码运行需要时间比较长,读者可以将其改成多线程,或者到这里购买付费代理之后,读者在代理网站生成提取代理链接后,提取代理,然后验证代理的有效性,步骤和免费代理差不多,只是提取代理的url不同而已,笔记自行尝试。
一般就够了。读者也可以自己测试。或者根据自己的需求购买更贵的私密代理或者独享代理。购买付费代理之后,读者在代理网站生成提取代理链接后,提取代理,然后验证代理的有效性,步骤和免费代理差不多,只是提取代理的url不同而已,笔记自行尝试。
二、代理调度要调度代理,我们首先要构建一个代理池。需要实现的功能:
1.定时验证代理的有效性,将无效代理删除。因为免费代理或者购买的代理有效时间不确定,有几分钟,几十分钟,几个小时等,我们要保证我们代理池中的代理基本都是有效的,这样才能使我们抓取成功率高。
2.每个代理都需要记录最后一次访问网站的时间。为了控制一个代理至少隔多少时间才能再次访问。
我们按照教程安装好mongodb后,启动mongodb服务。然后我们就可以使用mongodb了。笔者这里为了python操作方便,推荐使用mongoengine模块来使用mongodb,读者可以先看下简单的使用教程以下是建立代理池,定时更新代理,代理调度的代码。