gpt4 book ai didi

python - 使用 HTTP 代理 - Python

转载 作者:IT老高 更新时间:2023-10-28 20:37:44 26 4
gpt4 key购买 nike

我很熟悉应该将 HTTP_RPOXY 环境变量设置为代理地址。

一般 urllib 工作正常,问题是处理 urllib2。

>>> urllib2.urlopen("http://www.google.com").read()

返回

urllib2.URLError: <urlopen error [Errno 10061] No connection could be made because the target machine actively refused it>

urllib2.URLError: <urlopen error [Errno 11004] getaddrinfo failed>

额外信息:

urllib.urlopen(....) 工作正常!只是 urllib2 在耍花招……

我尝试了@Fenikso 的回答,但我现在收到了这个错误:

URLError: <urlopen error [Errno 10060] A connection attempt failed because the 
connected party did not properly respond after a period of time, or established
connection failed because connected host has failed to respond>

有什么想法吗?

最佳答案

即使没有 HTTP_PROXY 环境变量,您也可以这样做。试试这个示例:

import urllib2

proxy_support = urllib2.ProxyHandler({"http":"http://61.233.25.166:80"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)

html = urllib2.urlopen("http://www.google.com").read()
print html

在您的情况下,代理服务器似乎确实拒绝连接。


更多尝试:

import urllib2

#proxy = "61.233.25.166:80"
proxy = "YOUR_PROXY_GOES_HERE"

proxies = {"http":"http://%s" % proxy}
url = "http://www.google.com/search?q=test"
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

2014 年编辑:这似乎是一个流行的问题/答案。但是今天我会使用第三方 requests模块。

只做一个请求:

import requests

r = requests.get("http://www.google.com",
proxies={"http": "http://61.233.25.166:80"})
print(r.text)

对于多个请求,请使用 Session 对象,因此您不必在所有请求中添加 proxies 参数:

import requests

s = requests.Session()
s.proxies = {"http": "http://61.233.25.166:80"}

r = s.get("http://www.google.com")
print(r.text)

关于python - 使用 HTTP 代理 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620263/

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