python urllib2模块设置proxy代理

发布时间:2020-02-27编辑:脚本学堂
有关python urllib2模块的用法,使用urllib2模块为网络设置统一的proxy代理,使用urllib2的proxy与使用https_proxy,需要的朋友参考下。

在公司内部网络必须设置为统一的proxy,在之前使用python/urllib2/ target=_blank class=infotextkey>python urllib2模块库,无需设置proxy,一切工作正常。
在必须使用proxy之后,遇到了一系列的问题。

1,使用urllib2的proxy
 

复制代码 代码示例:
import urllib2
enable_proxy = True
proxy_handler = urllib2.ProxyHandler({"http" : 'your_proxy'})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
    opener = urllib2.build_opener(proxy_handler)
else:
    opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)

错误:
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>

2,使用requests
 

复制代码 代码示例:
import requests
r = requests.get("http://www.plcxue.com", proxies={"http": "your_proxy"})
print r.text
 

结果:
可以访问,但是内容不对

3,使用requests的proxy
 

复制代码 代码示例:
r = requests.get('http://www.jb200.com', proxies={"http":"your_proxy"})
print r.content

4,使用https_proxy
 

复制代码 代码示例:
import requests
proxies = {
  "http": "your_http_proxy",
  "https": "your_https_proxy",
}
r = requests.get("http://www.google.com", proxies=proxies)
print r.content
 

结果:
可以访问,内容不对

5,使用selenium
 

复制代码 代码示例:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(url)
html_resource = driver.page_source
 

结果:可以访问,内容正确