前言
在我们平时使用爬虫程序采集数据时,往往会遇到,因采集速度过快导致的自己 络ip被目标 站封禁,这种封禁有时候是封几分钟,有时候是封一天,封的时间不等,但是这样会导致我们局域 内其他人也无法访问目标 站,最大的问题是我们无法进行数据采集。为了保证正常采集数据且本地ip不被封禁,引入代理ip。
代理ip
代理ip有很多种类型,这里我们爬虫程序一般使用的是http或https的代理ip。
爬虫使用的话最好用高匿代理
高匿名代理不改变客户机的请求,这样在服务器看来就像有个真正的客户浏览器在访问它,这时客户的真实IP是隐藏的,服务器端不会认为我们使用了代理。
requests库使用代理ip
以上代码片段是最简单的requests库实现代理ip执行get请求
线上爬虫使用代理ip方案
目前爬虫使用代理的方法很多,这里我简单说说我在线上环境使用代理的心得。
首先,我自己维护了一个代理ip池,这个ip池是放在redis中的,也就是说我的所有可使用的代理ip是放在redis中,使用redis的set数据结构,
image.png
scrapy使用代理ip
上图代码片段自定义一个代理中间件,在scrapy这个方法中使用redis的操作随机获取一个代理出来,加到中,便完成了代理中间件的编写。随后把加到setting文件中,
便可完成scrapy增加代理的需求。
代理软件的提取
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib211379 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!