在爬虫爬取信息的过程中,有部分会出现刚开始采集正常,但是爬取几次之后就没有办法再次采集数据了,这基本上就是因为ip被爬取的服务器给禁了,所以在爬取过程中最好添加上代理ip,这样每爬取一次就切换一次ip,便可减少被封的可能。
首先需要一个ip的代理池,现在基本上都是付费,格式基本都是 ip+端口号
用request模块进行url访问时,设置ip代理:
proxies参数:参数中需要传进一个对象对象中需要两个参数一个是http一个是https但是传递的内容是一样的
参数url格式为:http://+ip+端口。
当需要进行用户名密码认证的时候便需要在传递两个参数:http://+用户名+密码+@+ip+端口。
例:
(无需认证)
(认证)
访问写法为:
request.get(url=url,proxies={'http': 'http://admin:admin@175.167.236.26:57114', 'https':'http://admin:admin@175.167.236.26:57114'}}
需要注意的是,虽然你写好了,而代理服务器有可能拒绝你代理,会返回403错误,所以需要在结果中判断响应值是不是200,如果进行多次请求的时候建议加上访问过期时间,不然你的主机或者服务器会非常卡顿~
上一篇: 三元表达式多个条件多次判断