当前位置: 首页 > 后端技术 > Python

GitHub:ProxyPool爬虫代理IP池

时间:2023-03-26 15:37:11 Python

各位小伙伴们大家好,今天给大家分享的开源项目是:proxy_pool,这个开源项目是抓取大型免费代理IP网站,有兴趣的爬虫可以试试使用下载代码克隆并尝试应用它,加油!!!_____________|___\_|___\||||_//\________||_//______|||__/|_//_\\\//|||||__//_\/_\|||||||(_)|><\|_|||||(_)|(_)|||___\_||_|\___//_/\_\\__|\_|\___/\___/\_____\__///___/免费代理资源目前有免费代理网站合集(排名不分先后,以下仅为他们发布的免费代理情况,可以参考付费代理评价到这里):如果有其他好的免费代理网站,可以在issues中提交,下次更新时考虑在项目中支持。运行项目下载代码:gitclonegit@github.com:jhao104/proxy_pool.gitorhttps://github.com/jhao104/proxy_pool/releases下载对应的zip文件安装依赖:pipinstall-rrequirements.txt更新配置:#环境。py为项目配置文件#配置API服务HOST="0.0.0.0"#IPPORT=5000#监听端口#配置数据库DB_CONN='redis://@127.0.0.1:8888'#配置ProxyFetcherPROXY_FETCHER=["freeProxy01",#这里是启用的代理抓取方法的名称,所有的抓取方法都位于fetcher/proxyFetcher.py"freeProxy02",#....]启动项目:#如果已经具备运行条件,可以通过代理池.py。#程序分为:schedule调度器和serverApi服务#启动调度器pythonproxyPool.pyschedule#启动webApi服务pythonproxyPool.pyserverDockerrundockerpulljhao104/proxy_pooldockerrun--envDB_CONN=redis://:password@ip:port/db-p5010:5010jhao104/proxy_pool:2.1.0如果想在爬虫代码中使用,可以把这个api封装成函数直接使用,例如:importrequestsdefget_proxy():returnrequests.get("http://127.0.0.1:5010/get/").json()defdelete_proxy(proxy):requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))#yourspidercodedefgetHtml():#....retry_count=5proxy=get_proxy().get("proxy")whileretry_count>0:try:html=requests.get('http://www.example.com',proxies={"http":"http://{}".format(proxy)})#使用代理访问returnhtmlexceptException:retry_count-=1#删除代理池中的代理delete_proxy(proxy)returnNone扩展代理项目包含多个l默认免费代理获取源,但是免费的毕竟质量有限,直接运行可能会得到代理质量不理想。因此,提供了代理获取的扩展方法。添加新代理源的方法如下:1.首先在ProxyFetcher类中添加自定义静态方法获取代理。该方法需要以生成器(yield)的形式返回一个host:ip格式的代理,例如:classProxyFetcher(object):#....#自定义代理源获取方法@staticmethoddeffreeProxyCustom1():#名字和已有的不一样#通过某个网站或者某个接口或者某个数据库获取代理#假设你已经有一个代理Listproxies=["x.x.x.x:3128","x.x.x.x:80"]forproxyinproxies:yieldproxy#确保每个proxy格式正确host:ipreturn2.添加方法后,修改setting.py文件PROXY_FETCHER项: 在PROXY_FETCHER下添加自定义方法的名称:PROXY_FETCHER=["freeProxy01","freeProxy02",#...."freeProxyCustom1"##确保名字和你添加的方法的名字一致]schedule进程会每隔一段时间抓取代理,并且您定义的方法将在下次获取时自动识别并调用。以上就是这个开源项目的详细介绍,感兴趣的朋友可以尝试应用一下。开源地址:https://github.com/jhao104/pr...今天的推荐大家喜欢吗?如果喜欢,请在文章底部留言或点赞,表示对我的支持。您的评论、点赞、转发和关注是我持续更新的动力!关注公众号并回复:“1024”,免费领取海量学习资源,先到先得!