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
xiaozizayang
V2EX  ›  Python

自身需要,假日在家写了个 IP 代理池开源项目,异步抓取验证,易扩展

  •  
  •   xiaozizayang ·
    howie6879 · 2018-04-08 18:03:47 +08:00 · 7727 次点击
    这是一个创建于 2423 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址 hproxy ❤️️️

    特性

    • [x] 多种方式进行数据存储,易扩展:

    • [x] 自定义爬虫基础部件,上手简单,统一代码风格:

    • [x] 提供 API 获取代理,启动后访问 127.0.0.1:8001/api

      • 'delete/:proxy': 删除代理
      • 'get': 随机选择一个代理
      • 'list':列出全部代理
      • ...
    • [x] 从代理池随机选取一个代理提供 html 源码抓取服务

    • [x] 定时抓取、更新、自动验证

    功能描述

    代理获取

    本项目的爬虫代码全部集中于目录spider,在/spider/proxy_spider/目录下定义了一系列代理网站的爬虫,所有爬虫基于/spider/base/proxy_spider.py里定义的规范编写,参考这些,就可以很方便的扩展一系列代理爬虫

    运行spider_console.py文件,即可启动全部爬虫进行代理的获取,无需定义新加的爬虫脚本,只需按照规范命名,即可自动获取爬虫模块然后运行

    代理接口

    // http://127.0.0.1:8001/api/get?valid=1
    // 返回成功,开启验证参数 valid=1 的话 speed 会有值,并且默认是开启的
    // types 1:高匿 2:匿名 3:透明
    {
        "status": 1,
        "info": {
            "proxy": "101.37.79.125:3128",
            "types": 3
        },
        "msg": "success",
        "speed": 2.4909408092
    }
    // http://127.0.0.1:8001/api/list 列出所有代理,没有一个个验证
    {
        "status": 1,
        "info": {
            "180.168.184.179:53128": {
                "proxy": "180.168.184.179:53128",
                "types": 3
            },
            "101.37.79.125:3128": {
                "proxy": "101.37.79.125:3128",
                "types": 3
            }
        },
        "msg": "success"
    }
    // http://127.0.0.1:8001/api/delete/171.39.45.6:8123
    {
        "status": 1,
        "msg": "success"
    }
    // http://127.0.0.1:8001/api/valid/183.159.91.75:18118
    {
        "status": 1,
        "msg": "success",
        "speed": 0.3361008167
    }
    // http://127.0.0.1:8001/api/html?url=https://www.v2ex.com
    // 随机选取代理抓取 v2ex
    {
        "status": 1,
        "info": {
            "html": "html 源码",
            "proxy": "120.77.254.116:3128"
        },
        "msg": "success"
    }
    

    希望对你有帮助,大佬勿喷,顺便问一句,爬取亚马逊有比较好的方案么?

    5 条回复    2018-04-12 10:00:13 +08:00
    Soar360
        1
    Soar360  
       2018-04-08 23:23:08 +08:00 via iPhone
    同道
    baiyun888
        2
    baiyun888  
       2018-04-09 10:30:57 +08:00
    这是爬的网上的免费代理吗?质量怎么样?
    skyfore
        3
    skyfore  
       2018-04-09 10:44:43 +08:00
    希望能给一个在线的地址直接使用 (手动滑稽)
    xiaozizayang
        4
    xiaozizayang  
    OP
       2018-04-12 10:00:01 +08:00
    @baiyun888 只能说接口保证返回一个有用的
    xiaozizayang
        5
    xiaozizayang  
    OP
       2018-04-12 10:00:13 +08:00
    @skyfore 可以有
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:24 · PVG 05:24 · LAX 13:24 · JFK 16:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.