代理和 Python 请求库不会更改 IP

Proxies and Python Requests Library Wont Change IP

提问人:Roylat Gnail 提问时间:8/8/2023 最后编辑:Roylat Gnail 更新时间:8/8/2023 访问量:19

问:

我正在尝试通过抓取来存档站点(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 地址。其他类似的问题也会产生相同的结果

Python 网页抓取 python-requests 代理

评论

0赞 Loocid 8/8/2023
从何而来?self.sess
0赞 Roylat Gnail 8/8/2023
作为类的一部分,self.sess 是一个请求会话

答: 暂无答案