提问人:Roylat Gnail 提问时间:8/8/2023 最后编辑:Roylat Gnail 更新时间:8/8/2023 访问量:19
代理和 Python 请求库不会更改 IP
Proxies and Python Requests Library Wont Change IP
问:
我正在尝试通过抓取来存档站点(API 不是一种选择),并且正在使用代理绕过站点的速率限制。
我正在使用 python 请求库,并使用存储在 中的代理列表,其中包含工作代理proxies.txt
我正在使用一个名为 ProxyManager 的类来处理轮换代理并验证它们
ProxyManager.py
class ProxyManager:
def __init__(self) -> None:
self._proxie_data = []
self._verified_proxies = []
self._current_proxy_index = 0
with open('./proxies.txt', "r") as file:
self._verified_proxies = file.read().strip().split("\n")
self._filter_proxies(debug=True)
def _filter_proxies(self, debug=False) -> None:
new_proxies = []
total_proxies = len(self._proxie_data)
if debug:
for proxy in self._proxie_data:
new_proxies.append({'http': proxy})
self._verified_proxies = new_proxies
self._current_proxy_index = random.randint(0, len(self._verified_proxies) - 1)
return
def get_current_proxy(self):
self._current_proxy_index += 1
if self._current_proxy_index >= len(self._verified_proxies) - 1:
self._current_proxy_index = 0
return self._verified_proxies[self._current_proxy_index]
执行以下任一操作时:
class Content:
def __init__():
proxy_manager = ProxyManager()
self.sess = requests.Session()
self.sess.get(url, headers=self.headers, proxies=proxy_manager.get_current_proxy())
或
class Content:
def __init__():
proxy_manager = ProxyManager()
self.sess = requests.Session()
self.sess.proxies.update(proxy_manager.get_current_proxy())
我的 IP 地址与我自己的全局 IP 地址相同,并且不会更改为代理的 IP 地址。其他类似的问题也会产生相同的结果
答: 暂无答案
评论
self.sess