国内代理ip 免费代理ip地址

一、建立互联网协议(互联网协议)代理池的思路:
做爬虫时,遇到访问太频繁互联网协议(互联网协议)被封是难以避免的,而本地单个互联网协议(互联网协议)是不足以进行大规模爬取,并且自己并不想购买付费代理,那么,构建一个互联网协议(互联网协议)代理池是非常有必要的 。思路如下:

国内代理ip 免费代理ip地址

文章插图
图一
二、建立互联网协议(互联网协议)代理池的步骤:
爬取代理IP:搜索选择代理互联网协议(互联网协议)网站,选取免费代理;代码如下:# _*_编码:UTF-8 _*_#开发作者:张杰#创建时间:2020/12/29 17:58# 文件名称:爬取代理知识产权PY#开发工具:pycharimport请求导入lxml 。html导入OS头={ ' User-Agent' : ' Mozilla/5.0(WindowsNT10.0;win64x64)applebwebkit/537.36(KHTML,像壁虎)Chrome/87 。0 .4280 .88 Safari/537.36 ' } URL_ list=[' http://www.西西代里 。com/nn/% r' % I针对范围(1,10)中的I]IP_ list=[]针对URL_ list:中的URLr=请求 。get(URL,标头=标头)etree=lxml 。html 。来自字符串(r. text)加入(ip_list).编码(' utf-8 ')f.关闭(验证代理IP:通过网络访问来验证代理互联网协议(互联网协议)的可用性和访问速度,将之前爬取到的代理互联网协议(互联网协议)地址从ip.txt文件中提取出来,分别试用代理互联网协议(互联网协议)去访问某个网站首页,仅保留响应时间在2秒内的知识产权,并保存在QIP.txt中,代码如下:
# _*_编码:UTF-8 _*_#开发作者:关中老玉米# 创建时间:2020/12/29 18:27# 文件名称:验证代理知识产权PY#开发工具:pycharimport请求sip_ list=open(' IP 。txt').读取() 。拆分(',')头={ ' User-Agent' : ' Mozilla/5.0(WindowsNT6.1;win64x64)applebwebkit/537.36(KHTML,像壁虎)Chrome/59 。0 .3071 .115 Safari/537.36 ' } qurl=' https://www.百度 。com' #用百度来测试互联网协议(互联网协议)是否能正常连网因为我在ip_list: #设置超时时间超时为2 s,超时则为不可用IPr=requests.get(url,代理={'http': 'http://' ip[i]},标头=标头,超时=2)如果r. text: qip追加(qip[I])else: continuef=open(' quality_ IP 。txt',' wb')f.write(,加入(质量_ip).编码(“utf-8”)f. close()使用代理IP:建立互联网协议(互联网协议)代理池之后,有以下两种使用代理互联网协议(互联网协议)的方式 。
【国内代理ip 免费代理ip地址】# _*_编码:UTF-8 _*_#开发作者:张杰#创建时间:2020/12/31 18:03# 文件名称:使用代理知识产权PY#开发工具:PyCharm# (1)使用随机知识产权,代码如下:导入随机导入请求sip_ list=open(' quality_ IP 。txt').读取() 。拆分(',')头={ ' User-Agent' : ' Mozilla/5.0(WindowsNT10.0;win64x64)applebwebkit/537.36(KHTML,像壁虎)Chrome/87 。0 .4280 .88 Safari/537.36 ' } URL=' http://* * * * * * ' r=请求 。获取(网址,代理={ ' http' : ' http://' random 。choice(IP_ list)},header=header)#(2)因为免费的代理时效很短,在后续的爬取任务中很容易失效,所以当出现访问错误(响应码不等于200)时,更换知识产权,代码如下:ip_list=open('qip.txt').读取() 。拆分(',')头={ ' User-Agent' : ' Mozilla/5.0(WindowsNT10.0;win64x64)applebwebkit/537.36(KHTML,像壁虎)Chrome/87 。0 .4280 .88 Safari/537.36 ' }对于ip_list:中的互联网协议(InternetProtocol的缩写)对于I在范围内(len(URL_ list)): r=请求 。获取(URL_ list[I],代理={ ' http' : ' http://' ip},header=header)ifr. status_ code!=200:打破教材编制不易,希望能帮助到更多有兴趣的学习者,让工作和学习顺利进行;请您点赞关注并转发,后续将分享更多源码,让更多学习者使用 。非常感谢!
作者:关中老玉米
日期:2020年12月31日