爱意满满的作品展示区。
WildCat

Scylla——开源免费的优秀代理 IP 池:自动验证、JSON API、基于 React 的 Web UI、Docker 支持

  •  9
     
  •   WildCat · May 27, 2018 · 14659 views
    This topic created in 3083 days ago, the information mentioned may be changed or developed.

    banner

    Build Status codecov Documentation Status PyPI version Docker Build Status

    GitHub:https://github.com/imWildCat/scylla

    中文文档:https://scylla.wildcat.io/zh/latest/

    自己是一个爬虫爱好者,有时候爬虫写的太过强大了被目标网站封了(笑)。所以就萌生了用代理 IP 的想法。很可惜很多开源代理 IP 池都是没有持续维护的,代码也比较奇怪。于是自己就写了一个。特性大概有:

    • 自动化的代理 IP 爬取与验证
    • 易用的 JSON API
    • 简单但美观的 web 用户界面,基于 TypeScript 和 React (例如,代理的地理分布)
    • 最少仅用 一条命令 即可启动
    • 无头浏览器( headless browser crawling )爬虫

    欢迎在贴中留下您的邮箱,我可以发送你 demo 地址(暂时不打算公开发布)。如果您想留邮箱,请注意:

    • 可以使用 base64 编码
    • 在您的回复的第一行或者最后一行写
    • 也可以用 [at] 替代 @

    附:几个截图 demo

    截图 1: Web UI (代理 IP 列表)

    1

    截图 2: Web UI (代理 IP 的地理分布)

    2

    Supplement 1  ·  May 27, 2018

    因为是用爬虫脚本自动爬 emails,所以:

    **Email 地址请单独一行写,谢谢!**千万不要在 base64 后面加任何字符,这样会被我的智障脚本忽略。

    另外,关于一些 features (#49):

    IP 验证策略

    @golmic 关于 IP 验证策略:目前的策略有点过于简单,由于这个项目已经写了一个月了,决定先发出来(骗一波 stars )让自己更有动力去写 =。= 我会在近期完善验证策略,并且把验证策略的文档完善: https://github.com/imWildCat/scylla/issues/16

    Forward proxy

    @binux 原来这个名词叫 forward proxy,感谢!我其实一开始是有这样的想法的,但是有一些担心所以没在初版实现:

    • 担心自己实现的 forward proxy 性能不足比较鸡肋
    • 担心 XX 找到 G 点说我 XXX (你懂)
    • 实现比较 rough 可能没什么用
    • 还有就是如何给 clients 分配代理也是一个问题。一开始可以考虑随机分配,但是我理想的情况是:
    • a. clients 的 HTTP Request 带一个类似 hash 的 header,固定 hash 对应固定代理
    • b. Scylla 里自动分析请求的 HTTP Header,比如针对 Cookies 中的 session 做一次 hashing。如果判定是同一个 session 的请求,就用同一个 IP。难点在于如何判断 session id。

    我考虑先加入随机分配代理的 forward proxy: https://github.com/imWildCat/scylla/issues/17

    根据国家返回 proxy

    @zqjilove 收到需求,下一个小版本就加入: https://github.com/imWildCat/scylla/issues/18

    Supplement 2  ·  May 28, 2018

    在 27, May, 2018 @ 16.50 (UTC) 时,这个项目登上了 GitHub trending 第五,感谢大家! Screenshot-2018-5-27 Build software better, together copy-crunch.png

    93 replies  •  2019-06-13 15:51:01 +08:00
    Baboonowen
    Baboonowen
    May 27, 2018 via Android
    1
    打破惨案
    flyxl
    flyxl
    May 27, 2018 via Android
    2
    赞楼主,求 demo
    1daydayde
    1daydayde
    May 27, 2018 via iPhone
    3
    先赞一个
    artandlol
    artandlol
    May 27, 2018 via iPhone
    4
    YXJ0YW5kbG9sI2dtYWlsLmNvbQ==
    golmic
    golmic
    May 27, 2018 via Android❤️1
    5
    i [at] lujq.me

    想知道 IP 的验证策略。因为我觉得 IP 代理池的核心就是这个。只有策略出色才能突出
    binux
    binux
    May 27, 2018❤️1
    6
    我一直觉得最好用的代理 IP 池接口就是 forward proxy。
    forward proxy 对应用透明地自动 rotate,抓取的同时天然地自动验证。
    B1ock
    B1ock
    May 27, 2018
    7
    bWFza3NzQHByb3Rvbm1haWwuY29t
    感谢
    o00o
    o00o
    May 27, 2018
    8
    IHJvbW90Y0BnbWFpbC5jb20g
    谢谢
    panyanyany
    panyanyany
    May 27, 2018
    9
    NTY4Mzk3NDQwQHFxLmNvbQ==

    请问楼主这些 ip 是从哪里来的呢,全网扫描还是?
    panyanyany
    panyanyany
    May 27, 2018
    10
    @panyanyany #9 不好意思,原来还有个 providers 文件夹,现在知道是扫公开的代理了
    ThirdFlame
    ThirdFlame
    May 27, 2018
    11
    ZmFuZGVsYWppQGdtYWlsLmNvbQ==
    airyland
    airyland
    May 27, 2018
    12
    赞,docker 无痛安装成功
    zqjilove
    zqjilove
    May 27, 2018
    13
    API 接口支持国家输出就好了
    131
    131
    May 27, 2018 via Android
    14
    YmxvZ0Btb2UuaW0=

    谢谢!
    cyn
    cyn
    May 27, 2018
    15
    Y3lubGl0dGxlW2F0XTEyNi5jb20=
    支持,感谢!
    dex2jar
    dex2jar
    May 27, 2018 via Android
    16
    ODA3NjYwMDcxQHFxLmNvbQ==
    谢谢楼主。看起来挺好的,前段时间刚买了 5 块的 ip
    gclm
    gclm
    May 27, 2018 via Android
    17
    gclm159[at]gmail.com
    支持,感谢
    Sixzeroo
    Sixzeroo
    May 27, 2018
    18
    c2l4emVyb282MEBnbWFpbC5jb20=
    感谢楼主
    airyland
    airyland
    May 27, 2018
    19
    报个问题,开始接口报 500,过一会正常,运行一段时间后 stats 500,proxy 列表为空。
    messagebus
    messagebus
    May 27, 2018 via iPhone
    20
    chi#miantiao.me 谢谢楼主,自己也在爬各个代理网站的 IP,支持 https 的很少
    faceair
    faceair
    May 27, 2018 via iPhone
    21
    v2ex#faceair.me 感谢楼主
    noqwerty
    noqwerty
    May 27, 2018 via Android
    22
    emhvdS56eS55aUBnbWFpbC5jb20=
    谢谢楼主。
    shenlw66
    shenlw66
    May 27, 2018
    23
    c2hlbmx3NjZAZ21haWwuY29t
    感谢
    tcpdump
    tcpdump
    May 27, 2018 via Android
    24
    回复标记一下
    caoyufei
    caoyufei
    May 27, 2018
    25
    YXRjYW95dWZlaUBnbWFpbC5jb20=
    感谢
    cocang
    cocang
    May 27, 2018
    26
    Y2hvdWNoYW5nemh1QGdtYWlsLmNvbQ==
    谢谢楼主
    JakeZou
    JakeZou
    May 27, 2018
    27
    em91bHV4QDEyNi5jb20=
    weegc
    weegc
    May 27, 2018
    28
    d2VlZ2NAMTYzLmNvbQ==

    谢谢楼主
    yfgeek
    yfgeek
    May 27, 2018 via iPhone❤️1
    29
    非常棒!正好有这个需求,粉了!
    congeec
    congeec
    May 27, 2018 via iPhone
    30
    Q29uZ2VlY0BxcS5jb20=
    好人一生平安
    不过代理池怎么还有爬虫功能呢?
    chroming
    chroming
    May 27, 2018
    31
    跟这个比有什么优势吗? https://github.com/SpiderClub/haipproxy
    ywind
    ywind
    May 27, 2018 via Android
    32
    Z3Vvc2h1a2FuZ0Bob3RtYWlsLmNvbQ==
    感谢
    Akagi201
    Akagi201
    May 27, 2018
    33
    YWthZ2kyMDFAZ21haWwuY29tCg==
    gitopen
    gitopen
    May 27, 2018 via Android
    34
    Z2l0b3BlbkBnbWFpbC5jb20=
    alphabity
    alphabity
    May 27, 2018
    35
    YWxwaGFiaXR5QGdtYWlsLmNvbQ==
    lje024
    lje024
    May 27, 2018
    36
    c3JnYjY4OUBsamVlZHUubWw=
    感谢
    yodeser
    yodeser
    May 27, 2018
    37
    eW9kZXNAeW9kZXMuY24=
    感谢感谢
    Yinnfeng
    Yinnfeng
    May 27, 2018
    38
    bGltaXRzeTIxN0BnbWFpbC5jb20=
    感谢
    trimleo
    trimleo
    May 27, 2018
    39
    bGVvY2xvdWR5QGdtYWlsLmNvbQ==
    感谢
    aiguozhedaodan
    aiguozhedaodan
    May 27, 2018
    40
    YWlndW96aGVkYW9kYW5AZ21haWwuY29t
    感谢
    bigtwo
    bigtwo
    May 27, 2018
    41
    aGFoYUBvZmZpY2UyMDE2LnNpdGU=
    不胜感激
    hlwjia
    hlwjia
    May 27, 2018
    42
    aGx3amlhQGZveG1haWwuY29t

    谢谢
    IllBeBack
    IllBeBack
    May 27, 2018
    43
    谢谢
    enByZWdpc3RlckBnbWFpbC5jb20=
    yazoox
    yazoox
    May 27, 2018 via Android
    44
    eWF6b294QHNpbmEuY29t

    谢谢!
    Oneneuuu
    Oneneuuu
    May 27, 2018
    45
    Mjc3MTc5MjMwMUBxcS5jb20=

    给力!大兄弟,多谢
    j0hnj
    j0hnj
    May 27, 2018
    46
    bmlnZWxjaGlhbmdAb3V0bG9vay5jb20=

    代码不错~
    byron
    byron
    May 27, 2018
    47
    Ynlyb25qaWFAZ21haWwuY29t

    吼啊。
    chenggiant
    chenggiant
    May 27, 2018
    48
    Y2hlbmdjaGlidEBnbWFpbC5jb20=

    赞!
    echopan
    echopan
    May 27, 2018
    49
    ZWNob3BhbjEyMzRAaG90bWFpbC5jb20= 谢谢
    WildCat
    WildCat
    OP
    May 27, 2018❤️1
    50
    @golmic
    关于 IP 验证策略:目前的策略有点过于简单,由于这个项目已经写了一个月了,决定先发出来(骗一波 stars )让自己更有动力去写 =。=
    我会在近期完善验证策略,并且把验证策略的文档完善: https://github.com/imWildCat/scylla/issues/16

    @binux 原来这个名词叫 forward proxy,感谢!我其实一开始是有这样的想法的,但是有一些担心所以没在初版实现:
    - 担心自己实现的 forward proxy 性能不足比较鸡肋
    - 担心 XX 找到 G 点说我 XXX (你懂)
    - 实现比较 rough 可能没什么用
    - 还有就是如何给 clients 分配代理也是一个问题。一开始可以考虑随机分配,但是我理想的情况是:
    - a. clients 的 HTTP Request 带一个类似 hash 的 header,固定 hash 对应固定代理
    - b. Scylla 里自动分析请求的 HTTP Header,比如针对 Cookies 中的 session 做一次 hashing。如果判定是同一个 session 的请求,就用同一个 IP。难点在于如何判断 session id。

    我考虑先加入随机分配代理的 forward proxy: https://github.com/imWildCat/scylla/issues/17



    @airyland 请发下 logs,非常感谢!



    @zqjilove 收到需求,下一个小版本就加入: https://github.com/imWildCat/scylla/issues/18
    momocraft
    momocraft
    May 27, 2018
    51
    bWVAam9rZXN0ZXIuaW8=

    感谢 (应该不会用很多)
    bbbb
    bbbb
    May 27, 2018 via iPhone
    52
    aGVsbG9oZnlAZ21haWwuY29t
    SingeeKing
    SingeeKing
    May 27, 2018
    53
    aW1zaW5nZWVAZ21haWwuY29t
    WildCat
    WildCat
    OP
    May 27, 2018
    54
    > @chroming 提问: 跟这个比有什么优势吗? https://github.com/SpiderClub/haipproxy

    既然你诚心诚意的发问了,那我就王婆卖瓜下啦( 233 ):
    对比 https://github.com/SpiderClub/haipproxy,这个项目的想法如下:
    1. 更简单的依赖,不需要 scrapy-splash 或者 redis。
    2. 更优秀的文档,包括代码文档(虽然目前不是很完善)。
    3. 我写了一些测试,尽力保证项目的可用性、维护性。
    4. 完善的 Community profile ( https://github.com/imWildCat/scylla/community ),对比: https://github.com/SpiderClub/haipproxy/community。即使我以后不维护这个项目了,也希望尽可能方便大家参( jie )与( pan )
    5. README 和文档里使用“盘古之白”(中文和西文字符标点之间注意加了合适的空格,适合强迫症患者阅读),参见: https://github.com/vinta/pangu.js/blob/master/README.md
    6. 一个 `scylla` 命令或者其他 docker 命令即可启动,没那么多幺蛾子命令: https://github.com/SpiderClub/haipproxy#%E6%9C%8D%E5%8A%A1%E7%AB%AF
    fy
    fy
    May 27, 2018
    55
    资瓷一下。

    ZnkwQHFxLmNvbQ==
    avichen
    avichen
    May 27, 2018
    56
    YXZpY2hlbkAxMjYuY29t

    谢谢
    iaigcfun
    iaigcfun
    May 27, 2018
    57
    YXJteXNoZW5nQGdtYWlsLmNvbQ==
    mikezy123
    mikezy123
    May 27, 2018 via iPhone
    58
    am95emVuZzU1NUBnbWFpbC5jb20=

    感谢
    breaklayer
    breaklayer
    May 27, 2018
    59
    YnJlYWtsYXllckAxNjMuY29t

    感谢
    davidf
    davidf
    May 27, 2018
    60
    c3psZGZAb3V0bG9vay5jb20=

    谢谢
    Cipool
    Cipool
    May 27, 2018 via Android
    61
    YTIyMTMxMDhAeWFob28uY29t
    麻烦了
    l9rw
    l9rw
    May 27, 2018
    62
    aUBsOXJ3LmNu

    感谢老哥
    chroming
    chroming
    May 27, 2018❤️1
    63
    @WildCat #54 感谢回复。文档确实十分完善,代码也很清晰。

    提一个小建议,Windows 无法直接安装 sanic,需手动设置 `SANIC_NO_UVLOOP=true` `SANIC_NO_UJSON=true` 两个环境变量才可安装。后期是否会考虑使用其他兼容 Windows 的后端模块来替换 sanic
    skwfar
    skwfar
    May 27, 2018
    64
    c2t3ZmFyQGdtYWlsLmNvbQ==
    十分感谢
    WildCat
    WildCat
    OP
    May 28, 2018
    65
    @chroming 由于目前还有太多工作需要做,暂时不考虑替换 Sanic。Win 上应该可以用 Linux 子系统解决这个问题
    Lentin
    Lentin
    May 28, 2018
    66
    bGVudGluQG91dGxvb2suY29t
    okface
    okface
    May 28, 2018 via Android
    67
    zgp6300[at]dingtalk.com
    Seth8277
    Seth8277
    May 28, 2018 via Android
    68
    bWFpbEBpbXNldGguY24=
    谢谢
    WhyLiam
    WhyLiam
    May 28, 2018
    69
    bGlhbXpodWNlQGdtYWlsLmNvbQ==
    leeger
    leeger
    May 28, 2018
    70
    emx2aXJtYWNoMUBnbWFpbC5jb20=

    谢谢~~~~
    yazoox
    yazoox
    May 28, 2018
    71
    不好意思,楼主。不是很懂这个搜索出来的 proxy 怎么使用?
    我在你的 github 里面提了一个问题, 有空可以去看看。
    简单说,就是我用 SwitchyOmega,设置了一个 Scylla 搜索出来的 IP:PORT 地址,但是,貌似没啥用啊?连网络都不通......
    suxing
    suxing
    May 28, 2018
    72
    MTQzMjg0NTE4M0BxcS5jb20=
    saymoon
    saymoon
    May 28, 2018
    73
    c2F5bW9vbkBnbWFpbC5jb20=
    感谢
    ftxg
    ftxg
    May 28, 2018
    74
    anVob25neGlhb3Nob3VAMTYzLmNvbQ==
    gonglexin
    gonglexin
    May 28, 2018
    75
    Z29uZ2xleGluQGdtYWlsLmNvbQ==\n
    twMM
    twMM
    May 28, 2018
    76
    dGFuZ3RhbzM2NkAxNjMuY29t
    谢谢楼主
    lanxyou
    lanxyou
    May 28, 2018
    77
    感谢

    bGFueHlvdUBnbWFpbC5jb20=
    keventseng
    keventseng
    May 29, 2018
    78
    Y2F0emlAdmlwLnFxLmNvbQ==
    iOran
    iOran
    May 29, 2018
    79
    aW9zdGlueUB5YWhvby5jb20NCg==
    ARhen
    ARhen
    May 29, 2018
    80
    bDEwMTA5MDgzMjZAZ21haWwuY29t
    谢谢楼主~
    undertonememorie
    undertonememorie
    May 29, 2018
    81
    aUBqb2tlci5vcmcuY24=
    谢谢楼主
    ye3245
    ye3245
    May 29, 2018
    82
    eWUzMjQ1QHNpbmEuY29t
    感谢
    Mervyn
    Mervyn
    May 30, 2018
    83
    bGlmZWlmZWljaG5AMTYzLmNvbQ==
    谢谢楼主。
    rik7821
    rik7821
    May 31, 2018
    84
    cmlrNzgyMUAxNjMuY29t
    谢谢楼主
    MikeFeng
    MikeFeng
    Jun 1, 2018
    85
    cWlubGFuZmVuZ0Bmb3htYWlsLmNvbQ==
    感谢
    caoyufei
    caoyufei
    Jun 1, 2018
    86
    ipinfo
    Rate limit exceeded. Subscribe to a paid plan to increase your usage limits at http://ipinfo.io/pricing, or contact us via http://ipinfo.io/contact
    oddcc
    oddcc
    Jun 7, 2018
    87
    c2t5Y2M3MTY0MEBnbWFpbC5jb20=

    谢谢!
    qcloud
    qcloud
    Jun 13, 2018
    88
    搭建之后,没有 IP 耶............
    qcloud
    qcloud
    Jun 13, 2018
    89
    OTM1MjI3Nzk5QHFxLmNvbQ==

    3Q
    demoxu
    demoxu
    Jun 14, 2018
    90
    @WildCat 能不能再 8081 代理制返回 https 的代理,或者指定延迟以下的
    skyzan
    skyzan
    Jun 25, 2018 via Android
    91
    MTc4MTU2NDE5NkBxcS5jb20=
    感谢
    a861123145
    a861123145
    Jul 22, 2018
    92
    YTg2MTEyMzE0NUBnbWFpbC5jb20K

    感谢
    7lsu
    7lsu
    Jun 13, 2019
    93
    bWlra3V5b0BnbWFpbC5jb20=
    谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5178 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 205ms · UTC 06:36 · PVG 14:36 · LAX 22:36 · JFK 01:36
    ♥ Do have faith in what you're doing.