判断是否发生了重定向
import urllib2
response = urllib2.urlopen("http://www.baidu.cn")
print response.geturl() == "http://www.baidu.cn"
"""
False
上面的代码可以判断出来是否发生了重定向
"""
import urllib2
class RedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_302(self, req, fp, code, msg, headers):
res = urllib2.HTTPRedirectHandler.http_error_301(self, req, fp, code, msg, headers)
res.status = code
res.newurl = res.geturl()
print(res.newurl)
return res
opener = urllib2.build_opener(RedirectHandler)
opener.open("http://www.baidu.cn")
解决https加密的问题
- 解决https加密的问题
- 使用传统的http的处理方式对https并不适用
import urllib2
import ssl
context = ssl._create_unverified_context()
headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);"}
url = "https://www.baidu.com"
request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request,context = context)
print(response.read())
debug的使用方法
import urllib2
"""
debug的使用方法
"""
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler,httpsHandler)
urllib2.install_opener(opener)
response = urllib2.urlopen("http://www.renren.com")