美文网首页Python新世界Data Mining技术
玩爬虫封IP是最头痛的事情!从零搭建异步爬虫代理池!随你怎么封

玩爬虫封IP是最头痛的事情!从零搭建异步爬虫代理池!随你怎么封

作者: 919b0c54458f | 来源:发表于2018-08-03 18:40 被阅读4次

    如何使用

    安装 Redis

    项目数据库使用了 Redis,Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。所以请确保运行环境已经正确安装了 Redis。安装方法请参照官网指南。

    进群:125240963   即可获取数十套PDF哦!

    运行服务器,启动 web 服务

    总体架构

    项目主要几大模块分别是爬取模块,存储模块,校验模块,调度模块,接口模块。

    爬取模块 负责爬取代理网站,并将所得到的代理存入到数据库,每个代理的初始化权值为 INIT_SCORE。

    存储模块 封装了 Redis 操作的一些接口,提供 Redis 连接池。

    校验模块 验证代理 IP 是否可用,如果代理可用则权值 +1,最大值为 MAX_SCORE。不可用则权值 -1,直至权值为 0 时将代理从数据库中删除。

    调度模块 负责调度爬取器和校验器的运行。

    接口模块 使用 sanic 提供 WEB API 。

    删除权值小于等于 score 的代理

    sanic 性能测试

    使用 wrk 进行服务器压力测试。基准测试 30 秒, 使用 12 个线程, 并发 400 个 http 连接。

    测试 http://127.0.0.1:3289/pop

    Requests/sec: 3081.87

    关闭 sanic 日志记录,测试 http://127.0.0.1:3289/

    可以看到其实性能是非常棒的,成功率极高。 wink

    实际应用示例

    划重点:aiohttp supports HTTP/HTTPS proxies

    但是,它根本就不支持 https 代理好吧,在它的代码中是这样写的。

    划重点:Only http proxies are supported

    我的心情可以说是十分复杂的。astonished 不过只有 http 代理效果也不错没什么太大影响,参见上面的测试数据。

    参考借鉴项目

    ProxyPool

    proxy_pool

    相关文章

      网友评论

        本文标题:玩爬虫封IP是最头痛的事情!从零搭建异步爬虫代理池!随你怎么封

        本文链接:https://www.haomeiwen.com/subject/vgyuvftx.html