经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
docker快速启动proxy_pool项目
来源:cnblogs  作者:z2n3  时间:2023/5/25 9:06:47  对本文有异议

docker快速启动proxy_pool项目

项目地址:https://github.com/jhao104/proxy_pool

0x01 搭建redis

该项目是基于redis的,所以我们首先需要一个redis,这里我还是选择用docker快速启动一个

  • 端口映射出来,可用于公网
  1. docker run -d --name redis -p 6380:6379 redis --requirepass yourpassword
  • 不端口映射,直接在vps上内部连接
  1. docker run -d --name redis redis --requirepass yourpassword

0x02 查看容器内ip

如果你第一步中选择了映射,呢么就可以直接跳到0x03 启动项目 中直接运行了,如果不是,那么你就需要知道启动的实例的内网ip,但是当我们docker exec 进去的时候会发现并没有相关的ip addr的环境,懒得安装了,直接在本机用如下命令

  1. docker inspect redis

这里的redis是容器的name,在结果中找到如下所示即为容器内网ip(可与本机通信)

image-20230524191542936

本机可以ping通

image-20230524191631039

0x03 启动项目

直接替换密码,ip以及响应的端口即可,选择映射出来的话再开放防火墙策略就可以通过公网ip访问了

  1. docker run -d --env DB_CONN=redis://:yourpassword@172.17.0.2:6379/0 -p 5010:5010 jhao104/proxy_pool:latest

image-20230524191744182

0x04 简单使用

  • Api

启动web服务后, 默认配置下会开启 http://127.0.0.1:5010 的api接口服务:

api method Description params
/ GET api介绍 None
/get GET 随机获取一个代理 可选参数: ?type=https 过滤支持https的代理
/pop GET 获取并删除一个代理 可选参数: ?type=https 过滤支持https的代理
/all GET 获取所有代理 可选参数: ?type=https 过滤支持https的代理
/count GET 查看代理数量 None
/delete GET 删除代理 ?proxy=host:ip
  • 爬虫使用

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

  1. import requests
  2. def get_proxy():
  3. return requests.get("http://127.0.0.1:5010/get/").json()
  4. def delete_proxy(proxy):
  5. requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))
  6. # your spider code
  7. def getHtml():
  8. # ....
  9. retry_count = 5
  10. proxy = get_proxy().get("proxy")
  11. while retry_count > 0:
  12. try:
  13. html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)})
  14. # 使用代理访问
  15. return html
  16. except Exception:
  17. retry_count -= 1
  18. # 删除代理池中代理
  19. delete_proxy(proxy)
  20. return None

剩下具体的可以去github看文档

0x05 后续

后续的话可以使用docker-compose,然后编写yml文件等等操作来实现更“自动化”

原文链接:https://www.cnblogs.com/z2n3/p/17429309.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号