超快速的python代理IP提取程式
阿新 • • 發佈:2019-01-31
從國外的代理IP網站提取代理IP, 100%可用!!!
py程式碼:
# -*- coding:utf-8 -*- import requests import re import execjs ti = """請選擇提取的數量: 0.30個代理IP 1.50個代理IP 2.100個代理IP 3.200個代理IP 4.300個代理IP 5.500個代理IP 請輸入你要提取數量的編號>>> """ while True: shu = input(ti) if shu not in ['0', '1', '2', '3', '4', '5']: print("\n\033[31m%s\033[0m" % "輸入有誤,請重新輸入!\n") else: break url = "http://spys.one/en/http-proxy-list/" # 該網站為國外網站,需要設定代理才訪問 data = { 'xf1': "0", 'xf2': "0", 'xf4': "0", 'xf5': "0", 'xpp': str(shu), } # xpp:4代表提取300個代理;0:30,1:50,2:100,3:200,4:300,5:500 print("正在獲取代理網站內容...") try: h1 = requests.post(url=url, data=data) except requests.exceptions.ConnectionError: exit("注意: 需要設定國外代理才能提取!") if h1.status_code == 200: print("獲取成功!\n\n正在解密代理IP...") else: exit("獲取失敗!") hh = h1.text ip = re.findall("\d{2,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", hh) # 獲取IP列表 # ====獲取加密演算法規則==== m1 = re.findall(r'</table><script type="text/javascript">.*;</script>', hh) m2 = re.sub(r'</table><script type="text/javascript">', "", m1[0]) m3 = re.sub(r'</script>', "", m2) m4 = re.sub(r';', ';\n', m3) # ===================== # ====獲取加密內容==== h3 = hh.split("onmouseover") del h3[0] u = [] for h33 in h3: h4 = re.findall(r'\+.*\)</script>', h33) h5 = re.sub("\+", "", h4[0]) h6 = re.sub("\)</script>", "", h5) h7 = "port = String" + h6 h8 = h7.replace(")(", ")+String(") u.append(h8) # ================== # =======解密======= ctx = """ function port() { %s return port; } """ port = [] for s in u: s1 = m4 + s # 完整js程式碼 s2 = ctx % (str(s1)) s3 = execjs.compile(s2) p = s3.call("port") port.append(p) # ================= # =====驗證代理===== url = "https://www.baidu.com" proxy = ip[0] + ":" + port[0] print("解密成功!") file = open("proxy_ip.txt", "a") for (i, p) in zip(ip, port): proxy = i + ":" + p file.write(proxy + "\n") print("可用代理: " + "\033[31m%s\033[0m" % proxy) file.close() input("代理提取完成!\n已儲存到 \033[31m%s\033[0m" % "proxy_ip.txt") # =================