猴子补丁解决python requests代理问题

该代码创建了一个名为requests_proxy_patch.py的文件,用于获取系统代理并处理HTTP请求。定义了一个PSession类,扩展了requests.Session,确保在请求和重定向时使用安全的代理。如果系统中有多个代理地址(非Windows环境),则优先选择HTTP代理。此模块可导入并应用于需要代理支持的Python脚本。
摘要由CSDN通过智能技术生成

创建文件requests_proxy_patch.py

from urllib.request import getproxies

def get_safe_proxy():
    proxies = getproxies()
    addresses = [v.removeprefix(k+'://') for k, v in proxies.items()]
    is_aio = len(set(addresses)) != len(addresses)
    # convert to only http if "All in One"
    return proxies if is_aio else {'http': proxies['http']}


import requests

class PSession(requests.Session):
    def request(self, *args, **kwargs):
        kwargs.setdefault('proxies', get_safe_proxy())
        super().request(*args, *kwargs)

    def resolve_redirects(self, *args, **kwargs):
        kwargs.setdefault('proxies', get_safe_proxy())
        super().resolve_redirects(*args, *kwargs)

requests.Session = PSession

然后从这个文件中导入requests即可
如何导入请参考其他介绍python import机制的博文

如果你实在不会导入又确实急着用,那你可以将这一段粘贴到脚本开头。(希望没人被逼到这一步,哈哈)

哦对了,非windows用不到这个,大概。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值