前置
公司接了個代理IP的廠商,需要測試下。
你問我代理IP有什麼用處?
1、代理內部服務出來
2、爬蟲代理不斷變更IP防封
3、代理國外,翻牆
這麼多?
原理
談不上原理,就是我請求發送到代理服務器,再由代理服務器去幫我請求,這裏會存在一級代理,二級代理等。還有細分的透明代理,普通代理。
具體實現協議有http,https,socks4,socks5,還有其他N多
選型
找了一圈,和人介紹,主要看了以下幾個
2、https://github.com/snail007/goproxy
3、https://github.com/qwj/python-proxy *
其中前2個都是非python的,第二個實驗了下,不能滿足要求,第三個試了下可以
測試
這裏只記錄第三個方式的
安裝
pip3 install pproxy
啓動
# 啓動
pproxy
# -r 指定upstream,也即二次代理地址
# -vv log詳情
pproxy -r http://second_proxy_host:port#username:password -vv
其中二次代理地址是我們第三方代理給的,會不斷變化,且有過期時間
測試
proxies = {
"http": "http://proxyserver_host:8080",
}
ret = requests.get("http://members.3322.org/dyndns/getip", proxies=proxies, timeout=30)
print(ret)
其中proxyserver_host爲我啓動pproxy的設備地址,也即我的proxy server
以上執行返回二次代理服務器地址
second_proxy_host:port
滿足要求。
未來
目前是非自動化的,手動啓動了一個pproxy的服務器,通過-r指定二次代理地址。
但是python的代碼,那麼可以修改下源碼,把-r那個地方改爲動態調用第三方的代理API,動態獲取代理IP和端口,然後再請求即可
over!