title:爬虫日记-收集快速代理免费代理ip并清洗ip
tags : [“请求”、“‘python”、“‘lxml”、“代理IP”和“代理”]
date: 2021-12-08
categories:“磨刀不误砍柴”环境window10python3中使用的库requests网络要求lxml网页的源代码解析源地址
文章目录title:爬虫日记-收集高速代理的免费代理ip,收集ip tags: ['requests ',' python ',' lxml ', 清洗“代理ip”的“代理”(date :2021-12-08 categories : )在不弄错砂轮的情况下劈柴)摘要1采集代理ip1.1观察对象页面1.2采集2清洗代理2.1的
摘要
爬行动物一般被屏蔽ip,所以代理ip也是爬行动物生活中不可缺少的。 写今天在网上公开的免费代理ip。
首先整理逻辑,写下网站上公布的去收集代理ip的爬虫,然后为了保险起见对数据进行一定的清洗,获取可用的ip。
ok,我开始写爬虫了。
1收集代理ip 1.1被观察网页高速代理免费ip展示的数据如下:
我们的程序访问互联网所需的部分是ip、port、类型,让我们举个例子。
URL=' https://www.Baidu.com ' proxies={ ' http ' : ' http://111.231.86.14933607890 ' } requests.get (href,PPP
1.2采集爬行动物很容易,直接上码。
#目标URL=' https://www.kuai daili.com/free/' payload={ } #构建请求标头headers={ ' user-agent ' 3360 ' Mozilla/5.0(winddows () agent ) ) 3360 ) mozillla65 WOW64 ) appleWebKit/537.36(khtml,like Gecko ) chrome/75.0.3770.100 ' accept ' : ' applicatation q=0.01 ',} #获取web源response=requests.request('get ',url,headers=headers, 包含DATA=payload(#结果的列表RES=[]_=etree.html ) response.text )格式代理的中间变量type _ DCT={ ' http ' 3360 ' 3360 ' ' https ' : ' https://' }获取data _ list=_.XPath ()/tbody/tr ) fordataindata _ list 3360 # ipip=data.XPath的TD
直接获取的代理一般存在一定的时效、真伪缺陷,直接放入项目使用可能会担心效率,因此最好在使用前对获取的代理进行一定的清洗,获取临时有效的代理。
清洗的方法也很简单,就是检测这个代理是否有效。
我们可以创建请求,通过这个代理访问。 如果有可以访问的东西,就可以得到数据。 该代理暂时有效,可以放入项目中使用。 如果直接出现404或其他一些问题,该代理可能已损坏或质量较差。 我马上放弃。
2.2清洗IP的代码href=' https://www.Baidu.com ' if ' https ' in proxy : proxies={ ' https ' 3360 proxy } else 3360 proxies={ } 英特尔MAC OS x 11 _2_2) appleWebKit/537.36(khtml, like Gecko ) chrome/90.0.4396.0 safari/537.36 ' } try 3360 r=time out=5, headers=headers (IFR.status _ code==200: print '代理已启用' except: print '代理已禁用' 3完整代码importrequestsfromllom _ proxy _ list (: URL=' https://www.kuai daili.com/free/' payload={ } headers={ ' user-agent } wow 64 ) ayload like Gecko ) chrome/75.0.3770.100 safari/537.36 ',' accept ' : ' applicatation q=0.01 ',} response=requests data=payload (RES=[ ] _=etree.html ) response.text ) type_dct={ 'HTTP': 'http://', ' https ' : ' https://' } data _ list=_.XPath ('/tbody/tr ' ) fordataindata _ list 3360 IP=data.XPath ).list TD(4) text ) )0) RES.append ) type_DCT ) type ) IP ' 3360 ' 3360 href=' https://www.Baidu.com ' if ' https ' iref 英特尔MAC OS x 11 _2_2) appleWebKit/537.36(khtml, like Gecko ) chrome/90.0.4396.0 safari/537.36 ' } try 3360 r=time out=5, headers=headers (IFR.status _ code==200: returntrueexcept : returnfalseif _ _ name _==' _ main _ ) ) print(p ) p,check(p ) p ) ) ) ) ) )写在最后一个代码中是不完整的,
实力有限,学问才浅。 如果有错误,欢迎指出。
我的个人博客菜猫小六-博客(codesix.site )我的简单书菜猫小六-简单书)建墅.com)我的CSDN菜猫小六- CSDN