-
242024年4月
-
302024年3月
-
292024年2月
-
312024年1月
-
312023年12月
-
302023年11月
-
312023年10月
-
302023年9月
-
312023年8月
-
352023年7月
-
312023年6月
-
312023年5月
-
302023年4月
-
312023年3月
-
282023年2月
-
312023年1月
-
312022年12月
-
302022年11月
-
312022年10月
-
302022年9月
-
312022年8月
-
322022年7月
-
292022年6月
-
322022年5月
-
302022年4月
-
332022年3月
-
312022年2月
-
372022年1月
-
382021年12月
-
382021年11月
-
402021年10月
-
432021年9月
-
372021年8月
-
442021年7月
-
442021年6月
-
432021年5月
-
342021年4月
-
312021年3月
-
292021年2月
-
352021年1月
-
422020年12月
-
402020年11月
-
482020年10月
-
522020年9月
-
852020年8月
-
752020年7月
-
802020年6月
-
782020年5月
-
772020年4月
-
432020年3月
-
362020年2月
-
452020年1月
-
562019年12月
-
712019年11月
-
612019年10月
-
562019年9月
-
532019年8月
-
362019年7月
-
362019年6月
-
382019年5月
-
402019年4月
-
352019年3月
-
342019年2月
-
442019年1月
-
392018年12月
-
402018年11月
-
392018年10月
-
392018年9月
-
452018年8月
-
452018年7月
-
392018年6月
-
512018年5月
-
492018年4月
-
342018年3月
-
282018年2月
-
482018年1月
-
732017年12月
-
7292017年11月
-
7442017年10月
-
2892017年9月
-
12017年8月
爬虫使用分布式有效提高工作效率及工作效率,这些也是从事爬虫工作者非常注重的部分,有效提高进度,快速采集数据信息,那么使用分布式的方法有哪些,很多人了解不够全面,为了提高工作效率;
第一:每个进程从接口API中随机取一个IP列表(比如一次提取50个IP)来循环使用,失败则再调用API获取,大概逻辑如下:
每个线程,从接口随机取回一批IP回来,循环尝试IP列表去抓取数据;
如果访问成功,则继续抓取下一条。
如果失败了(比如超时、出现验证码等),再从接口取一批IP,继续尝试。
方案缺点:IP代理都是有时间有效期的,如果提取了50个,你在一定期限内是有了前20个,后面的可能由于时间限制就用不了了。
如果你把http请求设置的链接时间超时为3秒钟,毒物时间超时间5秒,那么这3-8秒就可能被你浪费掉,有这3-8秒能做好多事了。
第二:每个进程从接口API中随机取一个IP来使用,失败则再调用API获取一个IP,大概逻辑如下:
每个线程,从接口随机取回一个IP来,用这个IP去访问资源,
如果访问成功,则继续抓下一条。
如果失败了(比如超时、出现验证码等),再从接口随机取一个IP,继续尝试。
方案缺点:频繁的调用API获取IP,会对代理服务器造成非常大的压力,影响API接口稳定,可能会被限制提取。这种方案不能持久稳定的运行。
第三:先提取大量IP导入本地数据库,从数据库里面取IP,大概逻辑如下:
在数据库里面建一个表,写一个导入脚本,每分钟请求多少次API(咨询代理IP服务商建议),把IP列表导入到数据库里面。
在数据库里面记录好 导入时间、IP、Port、过期时间、IP可用状态 等字段;
写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP进行使用。
执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP,重新换一个IP。
爬虫不经需要高质量稳定的代理ip,在有效的爬虫进行中也有很多方法提高数据信息采集,分布式采集是最有效的方法,也是爬虫爱好的广泛运用。