gpt4 book ai didi

python urllib2 : connection reset by peer

转载 作者:太空狗 更新时间:2023-10-29 20:19:15 24 4
gpt4 key购买 nike

我有一个 perl 程序可以从我的大学图书馆的数据库中检索数据,并且运行良好。现在想用python重写却遇到问题 <urlopen error [errno 104] connection reset by peer>

Perl 代码是:

    my $ua = LWP::UserAgent->new;
$ua->cookie_jar( HTTP::Cookies->new() );
$ua->timeout(30);
$ua->env_proxy;
my $response = $ua->get($url);

我写的python代码是:

    cj = CookieJar();
request = urllib2.Request(url); # url: target web page
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
opener = urllib2.install_opener(opener);
data = urllib2.urlopen(request);

我在家里使用VPN(虚拟专用网络)登录我大学的图书馆,我尝试了perl代码和python代码。 perl 代码按我的预期工作,但 python 代码总是遇到“urlopen 错误”。

我用谷歌搜索了这个问题,似乎 urllib2 无法加载环境代理。但是根据 urllib2 的文档,urlopen() 函数透明地与不需要身份验证的代理一起工作。现在我感到很困惑。谁能帮我解决这个问题?

最佳答案

我尝试按照 Uku Loskit 和 Mikko Ohtamaa 的建议伪造 User-Agent header ,并解决了我的问题。代码如下:

    proxy = "YOUR_PROXY_GOES_HERE"
proxies = {"http":"http://%s" % proxy}
headers={'User-agent' : 'Mozilla/5.0'}
proxy_support = urllib2.ProxyHandler(proxies)
opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler(debuglevel=1))
urllib2.install_opener(opener)

req = urllib2.Request(url, None, headers)
html = urllib2.urlopen(req).read()
print html

希望它对其他人有用!

关于 python urllib2 : connection reset by peer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163732/

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