rotate proxy
This commit is contained in:
parent
8a113fbb41
commit
d4925981d5
25
stream.py
25
stream.py
@ -25,7 +25,9 @@ class ProxyElem():
|
|||||||
self.stream.set_option("http-proxy", "socks5://" + proxy)
|
self.stream.set_option("http-proxy", "socks5://" + proxy)
|
||||||
self.req["http"] = "socks5://" + proxy
|
self.req["http"] = "socks5://" + proxy
|
||||||
self.req["https"] = "socks5://" + proxy
|
self.req["https"] = "socks5://" + proxy
|
||||||
|
def __repr__(self):
|
||||||
|
return self.proxy
|
||||||
|
|
||||||
proxies = {}
|
proxies = {}
|
||||||
for key in providers:
|
for key in providers:
|
||||||
proxies[key] = []
|
proxies[key] = []
|
||||||
@ -166,28 +168,25 @@ class MainHandler(tornado.web.RequestHandler):
|
|||||||
path = path.strip("/")
|
path = path.strip("/")
|
||||||
src = providers[provider] + self.request.path
|
src = providers[provider] + self.request.path
|
||||||
proxy_list = None
|
proxy_list = None
|
||||||
new_proxy_list = None
|
proxy_iter = None
|
||||||
proxy_list_orig = proxies.get(provider)
|
proxy_list_orig = proxies.get(provider)
|
||||||
if isinstance(proxy_list_orig, list):
|
if isinstance(proxy_list_orig, list):
|
||||||
proxy_list = proxy_list_orig.copy()
|
proxy_list = proxy_list_orig.copy()
|
||||||
new_proxy_list = proxy_list_orig.copy()
|
proxy_iter = proxy_list_orig.copy()
|
||||||
if len(new_proxy_list) > 1:
|
|
||||||
first_proxy = new_proxy_list.pop()
|
|
||||||
new_proxy_list = [first_proxy] + new_proxy_list
|
|
||||||
if isinstance(proxy_list, list):
|
if isinstance(proxy_list, list):
|
||||||
for proxy_temp in proxy_list:
|
for i in proxy_iter:
|
||||||
if len(proxy_list) > 1:
|
current_list = proxy_list.copy()
|
||||||
first_proxy = new_proxy_list.pop(0)
|
current = proxy_list.pop()
|
||||||
new_proxy_list = new_proxy_list + [first_proxy]
|
proxy_list = [current] + proxy_list
|
||||||
try:
|
try:
|
||||||
resp = requests.head(src, allow_redirects=True, proxies=proxy_temp.req, timeout=(0.3, 2.0))
|
resp = requests.head(src, allow_redirects=True, proxies=current.req, timeout=(0.3, 2.0))
|
||||||
if resp is not None:
|
if resp is not None:
|
||||||
src = resp.url
|
src = resp.url
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
else:
|
else:
|
||||||
proxies[provider] = new_proxy_list
|
proxies[provider] = current_list
|
||||||
proxy = proxy_temp
|
proxy = current
|
||||||
break
|
break
|
||||||
if proxy is not None:
|
if proxy is not None:
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user