有关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
结果:可以访问,内容正确