电脑装配网

「Python自学笔记」爬虫必备!搭建一个自己的免费爬虫代理池

 人阅读 | 作者pangding | 时间:2023-08-29 22:40
创建代理池环境配置使用

爬虫代理池

我们在做爬虫项目的时候经常需要做一些反爬措施,其中使用代理就是一个比较好的手段。今天我们就一起来学习一下如何搭建一个自己的爬虫代理池,当然重点是免费!最原始的方法肯定是我们自己单独去写一个爬虫来实现代理池的获取,这样做当然可以,但是作为一个标准的懒汉,我决定了使用大神们已经写好的项目来直接使用!

创建代理池

环境

本实例在Ubuntu20.04 python3.8的环境下完成!项目需要使用到redis数据库,参考文章按顺序执行下列代码1.克隆项目到本地https://github.com/jhao104/proxy_pool2.安装依赖pip3install-ihttps://pypi.doubanio.com/simple-rrequirements.txt

配置

修改项目的配置文件#setting.py为项目配置文件#配置API服务HOST="0.0.0.0"#IPPORT=5000#监听端口#开放端口nbsp;sudoufwallow5000#打开端口nbsp;sudoufwenable#开启防火墙nbsp;sudoufwreload#重启防火墙#配置数据库DB_CONN='redis://:pwd@127.0.0.1:8888/0'#redis有密码,0是数据库编号DB_CONN='redis://:127.0.0.1:8888/0'#redis无密码,0是数据库编号#配置ProxyFetcherPROXY_FETCHER=["freeProxy01",#这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py"freeProxy02",#....]启动项目命令#如果已经具备运行条件,可用通过proxyPool.py启动。#程序分为:schedule调度程序和serverApi服务#启动调度程序python3proxyPool.pyschedule#启动webApi服务python3proxyPool.pyserver#一键启动bashstart.sh根据您自己的环境判断是否将start.sh脚本里面的python换成python3注意:如果您使用的是python3.8在使用python3 proxyPool.py server的时候会出现一个如下报错原因是python3.8的版本与werkzeug包的冲突解决方案:直接进入这个包然后在950行的位置添加一个空列表,如下图:然后重新运行python3 proxyPool.py server即可!

使用

启动web服务后, 默认配置下会开启 http://127.0.0.1:5000 的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

文章标签:

本文链接:『转载请注明出处』