Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lazzman/ProxyPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

18 Commits

Repository files navigation

介绍

自动爬取多个代理网站代理IP,自动校验并存入Redis数据库中,使用flask框架提供Web接口获取可用代理IP。


环境

  • python3.6
  • Miniconda或者Anaconda
  • Redis

安装

使用conda命令创建运行环境,将自动创建一个名为python36的环境

conda env create -f conda-env.yml

配置

进入proxypool目录,修改setting.py文件


运行

使用conda命令切换运行环境

activate python36

开启API监听与代理池

python run.py

启动后默认监听127.0.0.1:5000,提供了两个获取代理的地址

# 获取1个代理
http://127.0.0.1:5000/getProxy
# 获取n个代理
http://127.0.0.1:5000/getMoreProxy/n

启动服务

python run.py

模块介绍

  • crawl.py 爬虫模块
    • class proxy.crawl.ProxyCrawl 爬虫类,用于爬取代理网站上的代理,可按照已有方法名添加新的爬取规则
  • schedule.py 调度器模块
    • class proxypool.schedule.ValidityChecker 代理校验类,可以对给定的代理的可用性进行异步检测。
    • class proxypool.schedule.PoolAdder 代理添加器,用来触发爬虫模块,对代理池内的代理进行补充,代理池代理数达到阈值时停止工作。
    • class proxypool.schedule.Schedule 代理池启动类,运行RUN函数时,会创建两个进程,负责对代理池内容的增加和更新。
  • db.py Redis数据库连接模块
    • class proxypool.db.RedisClient 数据库操作类,与Redis建立连接和对Redis数据库的增删改查
  • error.py 异常模块
    • class proxypool.error.ResourceDepletionError 资源枯竭异常,如果从所有抓取网站都抓不到可用的代理资源,则抛出此异常。
    • class proxypool.error.PoolEmptyError 代理池空异常,如果代理池长时间为空,则抛出此异常。
  • api.py API模块,启动一个Web服务器,使用Flask实现,对外提供代理的获取功能。
  • utils.py 工具模块
  • setting.py 元数据配置模块
  • test.py 测试爬虫函数模块

项目参考

https://github.com/WiseDoge/ProxyPool

About

高匿ip代理池

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /