[英]Python requests doesn't change IP
我目前正在為 Python 構建一個代理輪轉器。到目前為止一切都運行良好,除了事實上盡管有代理,跟蹤器頁面返回我自己的 IP。
我已經閱讀了該論壇中的數十篇帖子。 它經常說“在這種情況下代理有問題”。
我有一個很長的代理列表(大約 600 個),我用我的方法對其進行了測試,並且在我將它們放入此列表之前確保在廢棄它們時將它們標記為“精英”或“匿名”。
那么,在匿名方面,是不是大多數免費代理都是“垃圾”,或者我從根本上做錯了什么?
基本上有沒有辦法找出代理是如何設置匿名的?
Python 3.10。
import requests
headers = {
"User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
}
proxi = {"http": ""}
prox_ping_ready = [173.219.112.85:8080,
43.132.148.107:2080,
216.176.187.99:8886,
193.108.21.234:1234,
151.80.120.192:3128,
139.255.10.234:8080,
120.24.33.141:8000,
12.88.29.66:9080,
47.241.66.249:1081,
51.79.205.165:8080,
63.250.53.181:3128,
160.3.168.70:8080]
ipTracker = ["wtfismyip.com/text", "api.ip.sb/ip", "ipecho.net/plain", "ifconfig.co/ip"]
for element in proxy_ping_ready:
for choice in ipTracker:
try:
proxi["http"] = "http://" + element
ips = requests.get(f'https://{choice}', proxies=proxi, timeout=1, headers=headers).text
print(f'My IP address is: {ips}', choice)
except Exception as e:
print("Error:", e)
time.sleep(3)
輸出(示例):
My IP address is: 89.13.9.135
api.ip.sb/ip
My IP address is: 89.13.9.135
wtfismyip.com/text
My IP address is: 89.13.9.135
ifconfig.co/ip
(每次都是我自己的地址)。
您只需為http
流量設置代理,您還需要為https
流量包含一個密鑰。
proxi["http"] = "http://" + element
proxi["https"] = "http://" + element # or "https://" + element, depends on the proxy
正如詹姆斯提到的,您還應該使用 https 代理
proxi["https"] = "http://" + element
如果您max retries with url
則很可能意味着代理不工作或速度太慢且過載,因此您可能會增加超時。
您可以通過將代理設置為環境變量來驗證您的代理是否正常工作。 我從你的單子里拿了一個
import os
os.environ["http_proxy"] = "173.219.112.85:8080"
os.environ["https_proxy"] = "173.219.112.85:8080"
然后通過將您的請求更改為在沒有代理設置的情況下運行您的代碼
ips = requests.get(f'wtfismyip.com/text', headers=headers).text
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.