爬虫有的时候会遇到被禁代理的情况,这个时候你可以找一下代理网站,抓取一下免费的代理,来进行动态的轮询就没问题了,也可以用别人做好的第三方代理平台,比如说亿牛云代理,是一个代理是基于Linux系统研发的平台,自营线路,电信机房宽带,私密家庭动态代理,当然除了这家还有其他的很多家代理,网上一艘就有很多,可以写一个爬虫脚本持续抓取,要是使用量不大的话,也可以手动粘贴抓取,要是土豪一点呢就直接购买。
这时候如果你使用的是python,你需要自己维护一个代理池,控制每个代理的访问次数,随机更换代理什么的,但是如果你想做成服务化,你可以使用Squid绑定多个代理地址,做正向代理,Squid是一种在Linux系统下使用的比较优秀的代理服务器软件,把代理列表的代理,按照squid的cache_peer机制按照一定格式,写在配置文件中即可。这个就相当于将管理和调度的问题全交给了squid来做,你只需要使用爬虫访问squid的服务端口就可以了。
现在可以将所有步骤归纳总结一下:
1.利用爬虫脚本每天定时抓取代理网站上的免费,或者买一定数量的,写入mongodb或者其他的数据库中,这张表作为原始表。
2.使用之前需要做一步测试,就是测试这个代理是否有效,方法就是利用curl访问一个网站查看返回值,需要创建一张新表,循环读取原始表有效则插入,验证之后将其从原始表中删除,验证的同时可以利用响应时间来计算这个代理的质量,和最大使用次数,有一个算法可以参考一种基于连接代理优化管理的多线程网络爬虫处理方法。
3.将有效的代理写入squid的配置文件,重新加载配置文件。
4.让爬虫程序去指定的squid的服务代理和端口,进行抓取。
添加上方▲技术, 在线咨询
复制微信号
声明
一、本站原创内容,其版权属于本网站所有。其他媒体、网站或个人转载使用时不得进行商业性的原版原式的转载,也不得歪曲和篡改本网站所发布的内容。如转载须注明文章来源。
二、本网站转载其它媒体作品的目的在于传递更多信息,并不代表本网站赞同其观点和对其真实性负责;如侵犯你的权益请告诉我们立即删除;其他媒体、网站或个人转载使用自负法律责任。
发表评论
2021-11-14 22:22:40回复