由于京东农场,服务器大量号运行,导致黑IP,脚本就无法正常运行。 所以才出本期教程。
前期准备
已搭建docker
一、搭建教程
docker run -dit \
--name auto-proxy-pool \
--network bridge \
--restart always \
-p 8080:8080 \
-v /root/auto-proxy-pool:/run/data \
--privileged=true \
mzzsfy/auto-proxy-pool:latest
前一个8080可修改,防止占用,记得开放对应的端口防火墙(如果搭建宝塔,则服务器 宝塔都需要开启端口)
搭建完成会在root 目录下生成 auto-proxy-pool文件夹
二、配置proxy.yml文件
运行后root/auto_proxy_pool会生成proxy.template.yml文件(该文件每次重启都会被覆盖)
将文件改名为proxy.yml,只需要替换你代理网站提取的代理链接apiUrl即可
######################################## # 配置中带有default前缀的都能被覆盖 # ######################################## #!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!! #!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!! #!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!! #!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!! changeRequest: - hostRegex: (.+\.jd\.com)|(.+\.isvjd\.com)|(.+\.isvjcloud\.com) #正则表达式 # 支持多项,从上到下匹配 ########################################################################### # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!! # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!! # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!! # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!! ########################################################################### # 目前为或者关系,只要匹配其中一项就生效,后续会改为与关系,有填写的全部匹配才生效 # 匹配host的正则,性能最高 - hostRegex: .+\.jd\.com #匹配完整url正则,携带参数,功能最全 #urlRegex: https://.+\.baidu\.com\?.+ #匹配路径正则 #pathRegex:/path #参数匹配正则 #paramsRegex: #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化 #name: 正则 #headersRegex #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化 #name: 正则 #cookiesRegex #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化 #name: 正则 #使用哪一个代理,这样写会尝试按顺序从proxy1取2次,然后去proxy2取一次,按最先取到有效计算 proxy: proxy1 #是否放行,true直接屏蔽该请求 black: false #用来做上游匹配的ck,当ck值一致时会分配到同一上游,https需要配置decryptHttps:true #proxyCk: xxxx #该规则的日志等级 #logLevel: debug #是否记录未知大小的jsonBody #logUnknownSizeBody: true #拦截指定路径 #- pathRegex: /xxxx # black: true #带有test 这个header的单独指定上游为proxy2 # - headersRegex: #test: test #指定上游 #proxy: proxy1 proxy: proxy upstream: proxy: #自定义名字 template: '{{$x := regexFindAll "\\d{1,3}(\\.\\d{1,3}){3}:\\d{2,5}" . -1}}{{range $s := $x}}{{printf "http://%s" $s}}{{end}}' apiUrl: #这里是填写代理api地址,格式:txt,换行\n,提取1个 checkRetryNumber: 2 #检测代理次数,超过次数则获取新代理 apiRetryNumber: 5 #上游重试次数,超过次数则采用直连 checkUrl: http://jd.com/,http://baidu.com/,http://bilibili.com/ #检测代理是否有效,不用改 lifecycle: -1 #自动失效时间,-1为不自动失效,单位秒 maxSize: 5 #保留几个上游 checkTimeout: 2s #单个check超时时间 checkRetryWait: 500ms #重试check前等待时间 requestInterval: 1000ms #请求时间间隔,在这个时间内只会请求一次api
三、购买代理,提取apiUrl
星空代理
携趣网络
api代理获取设置:读取数量选择:1 读取格式:txt 分 隔 符:换行(\n)
配置好后重启即可
填写到第二步proxy.yml文件 apiURL
docker restart auto-proxy-pool
命令重启 记得删除新生成的 proxy.template.yml文件 保留已修改的 proxy.yml文件
四:Python设置代理
局部代理
proxies = {"http":"http://ip:port","https":"http://ip:port"}
requests.get(url,proxies=proxies)
全局代理
我们只需要在青龙的config.sh文件添加http_proxy、https_proxy环境变量即可:
//仅支持http代理
export GLOBAL_AGENT_HTTP_PROXY="http://ip:port"
//支持http和https代理
export GLOBAL_AGENT_HTTPS_PROXY="http://ip:port"
五、JavaScript设置代理
JavaScript脚本并不像Python那样默认使用系统代理变量,如果需要使用代理进行请求,那只能在代码中设置。
nodejs中安装global-agent依赖 局部代理
在需要用代理的js脚本开头加入一行代码:文章来源:https://www.toymoban.com/news/detail-547347.html
require('global-agent/bootstrap');
global.GLOBAL_AGENT.HTTP_PROXY="http://ip:port";
全局代理
我们只需要在青龙的config.sh文件添加GLOBAL_AGENT_HTTP_PROXY、GLOBAL_AGENT_HTTPS_PROXY环境变量即可:文章来源地址https://www.toymoban.com/news/detail-547347.html
//仅支持http代理
export GLOBAL_AGENT_HTTP_PROXY="http://ip:port"
//支持http和https代理
export GLOBAL_AGENT_HTTPS_PROXY="http://ip:port"
到了这里,关于搭建青龙代理池,避免黑ip的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!