GitHub: ProxyPool 爬虫代理 IP 池 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zhijieju
V2EX    Python

GitHub: ProxyPool 爬虫代理 IP 池

  •  1
     
  •   zhijieju 2020-07-10 14:32:14 +08:00 3610 次点击
    这是一个创建于 1932 天前的主题,其中的信息可能已经有所发展或是发生改变。

    hello,小伙伴们,大家好,今天给大家分享的开源项目是:proxy_pool,这个开源项目是抓取个大免费代理 IP 网站,感兴趣的爬虫可以尝试把代码clone下载然后尝试应用一下,加油!!!

    ______ ______ _ | ___ \_ | ___ \ | | | |_/ / \__ __ __ _ __ _ | |_/ /___ ___ | | | __/| _// _ \ \ \/ /| | | || __// _ \ / _ \ | | | | | | | (_) | > < \ |_| || | | (_) | (_) || |___ \_| |_| \___/ /_/\_\ \__ |\_| \___/ \___/ \_____\ __ / / /___ / 

    免费代理源


    目前实现的采集免费代理网站有(排名不分先后, 下面仅是对其发布的免费代理情况, 付费代理测评可以参考这里):

    如果还有其他好的免费代理网站, 可以在提交在issues, 下次更新时会考虑在项目中支持。

    运行项目


    下载代码:

    git clone [email protected]:jhao104/proxy_pool.git 

    or

    https://github.com/jhao104/proxy_pool/releases 下载对应 zip 文件 

    安装依赖:

    pip install -r requirements.txt 

    更新配置:

    # setting.py 为项目配置文件 # 配置 API 服务 HOST = "0.0.0.0" # IP PORT = 5000 # 监听端口 # 配置数据库 DB_COnN= 'redis://@127.0.0.1:8888' # 配置 ProxyFetcher PROXY_FETCHER = [ "freeProxy01", # 这里是启用的代理抓取方法名,所有 fetch 方法位于 fetcher/proxyFetcher.py "freeProxy02", # .... ] 

    启动项目:

    # 如果已经具备运行条件, 可用通过 proxyPool.py 启动。 # 程序分为: schedule 调度程序 和 server Api 服务 # 启动调度程序 python proxyPool.py schedule # 启动 webApi 服务 python proxyPool.py server 

    Docker 运行

    docker pull jhao104/proxy_pool docker run --env DB_COnN=redis://:password@ip:port/db -p 5010:5010 jhao104/proxy_pool:2.1.0 

    使用


    如果要在爬虫代码中使用的话, 可以将此 api 封装成函数直接使用,例如:

    import requests def get_proxy(): return requests.get("http://127.0.0.1:5010/get/").json() def delete_proxy(proxy): requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy)) # your spider code def getHtml(): # .... retry_count = 5 proxy = get_proxy().get("proxy") while retry_count > 0: try: html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)}) # 使用代理访问 return html except Exception: retry_count -= 1 # 删除代理池中代理 delete_proxy(proxy) return None 

    扩展代理


    项目默认包含几个免费的代理获取源,但是免费的毕竟质量有限,所以如果直接运行可能拿到的代理质量不理想。所以,提供了代理获取的扩展方法。

    添加一个新的代理源方法如下: 1 、首先在 ProxyFetcher 类中添加自定义的获取代理的静态方法, 该方法需要以生成器(yield)形式返回 host:ip 格式的代理,例如:

    class ProxyFetcher(object): # .... # 自定义代理源获取方法 @staticmethod def freeProxyCustom1(): # 命名不和已有重复即可 # 通过某网站或者某接口或某数据库获取代理 # 假设你已经拿到了一个代理列表 proxies = ["x.x.x.x:3128", "x.x.x.x:80"] for proxy in proxies: yield proxy # 确保每个 proxy 都是 host:ip 正确的格式返回 

    2 、添加好方法后,修改 setting.py 文件中的 PROXY_FETCHER 项:  在 PROXY_FETCHER 下添加自定义方法的名字:

    PROXY_FETCHER = [ "freeProxy01", "freeProxy02", # .... "freeProxyCustom1" # # 确保名字和你添加方法名字一致 ] 

    schedule 进程会每隔一段时间抓取一次代理,下次抓取时会自动识别调用你定义的方法。

    以上就是这个开源项目的详细介绍了,感兴趣的小伙伴可以尝试应用一下。

    开源地址: https://github.com/jhao104/proxy_pool

    今天的推荐不知道大家喜欢吗?如果你们喜欢话,请在文章底部留言或点赞,以表示对我的支持,你们的留言,点赞,转发关注是我持续更新的动力哦!

    关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!

    2 条回复    2020-07-17 22:18:55 +08:00
    Kvip
        1
    Kvip  
       2020-07-14 17:12:36 +08:00
    前阵子有体验过这项目,通过给的环境里面获取的代理基本上都是 http 的,鲜有 https 的,要 https 的代理还是得自己搭建环境
    zhijieju
        2
    zhijieju  
    OP
       2020-07-17 22:18:55 +08:00
    白嫖的有的用就可以了,不挑食,最好自己搭建
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1477 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 16:42 PVG 00:42 LAX 09:42 JFK 12:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86