gpt4 book ai didi

python - 将本地 urllib 设置设为本地?

转载 作者:行者123 更新时间:2023-12-01 05:40:03 24 4
gpt4 key购买 nike

我有一个多线程进程。对于每个线程,运行以下代码;但是,它将每个线程使用的代理覆盖为最新添加的代理。有没有办法让这个代理设置成为线程本地的?

        self.p_handler = urllib.request.ProxyHandler({'http' : self.proxy})
self.opener = urllib.request.build_opener(self.p_handler)
urllib.request.install_opener(self.opener)
urllib.request.urlretrieve(url, filename)

最佳答案

无需使用 install_opener(全局安装),只需调用 opener 对象的 open 方法,然后传输结果到一个文件中。

self.p_handler = urllib.request.ProxyHandler({'http' : self.proxy})
self.opener = urllib.request.build_opener(self.p_handler)
result = self.opener.open(url)
with open(filename, 'wb') as f:
for chunk in iter(lambda: result.read(1024), ''):
f.write(chunk)

这里的最后两行只是为了避免将整个文件保存在内存中;它们允许它以千字节大小的 block 进行流式传输。如果您不介意将其保留在内存中,那么最后一点会变得更简单:

result = self.opener.open(url)
with open(filename, 'wb') as f:
f.write(result.read())

关于python - 将本地 urllib 设置设为本地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com