1.自定義數據請求方式
handler = urllib2.HTTP/HTTPSHandler()
opener = urllib2.build_handler(handler)
opener.open(request)
代碼操作:
# -*- coding:utf-8 -*-
import urllib2
import urllib
'''
request = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(request)
print response.read()
'''
# 創建一個HTTP處理器對象
http_handler = urllib2.HTTPHandler()
# 創建一個打開方式對象
opener = urllib2.build_opener(http_handler)
# 通過自定義的打開方式,打開目標網址,獲取目標網址服務器返回的響應對象
response = opener.open("http://www.baidu.com")
# 讀取響應對象中的數據
print response.read()
2.自定義代理處理器
urllib2.ProxyHandler({"http":"ip:port"})
urllib2.ProxyHandler({"http":"user:pass@ip:port"})
代碼操作:
import urllib2
# 創建一個代理對象處理器
# 使用免費的代理進行處理器的創建
# proxy_handler = urllib2.ProxyHandler({"http":"67.205.159.165:3128"})
# 使用私密代理進行處理器的創建【賬號 + 密碼】
proxy_handler = urllib2.ProxyHandler({"http" : "username:password@67.205.159.165:3128"})
# 創建一個請求發送對象
opener = urllib2.build_opener(proxy_handler)
# 創建請求對象
request = urllib2.Request("http://www.baidu.com")
# 發送請求,獲取服務器返回的響應對象
response = opener.open(request)
# 獲取數據
print response.read()
3.密碼管理器
HttpPasswordMgrWithDefaultRealm()
1、ProxyBasicAuthHandler()授權代理處理器
2、HttpBasicAuthHandler()驗證web客戶端授權處理器
代碼操作:
# -*- coding:utf-8 -*-
import urllib
import urllib2
# 準備數據
ftp_server = "192.168.1.100"
username = "root"
password = "123456"
# 創建一個密碼管理器對象
pass_mgr = urllib2.HttpPasswordMgrWithDefaultRealm()
# 增加要管理服務器
pass_mgr.add_password(None, ftp_server, username, password)
# 創建一個web驗證處理器
http_auth_handler = urllib2.HTTPBasicAuthHandler(pass_mgr)
# 構建一個請求對象
request = urllib2.Request("http://image.baidu.com")
# 創建自定義打開方式對象【開鎖人】
opener = urllib2.build_opener(http_auth_handler)
# 發送請求,獲取服務器的響應對象
response = opener.open(request)
# 獲取響應中的數據
content = response.read()
# 處理數據。。。。。
4.Cookie 模擬登陸
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcess(cookie)
代碼操作:
# -*- coding:utf-8 -*-
import urllib
import urllib2
import cookielib
# 創建一個Cookie對象
cookie = cookielib.CookieJar()
# 創建一個處理器對象
cookie_handler = urllib2.HTTPCookieProcessor(cookie)
# 創建一個請求打開方式
opener = urllib2.build_opener(cookie_handler)
# 構建請求對象
url = "http://www.renren.com/PLogin.do" # http://www.renren.com/SysHome.do
data = urllib.urlencode({"email":"test", "password":"123"})
request = urllib2.Request(url, data)
# 發送請求,訪問數據,得到響應對象
response = opener.open(request)
# 獲取數據
content = response.read()
print content
5.加載全局opener
urllib2.install_opener(opener)
urllib2.urlopen(..)
代碼操作:
# -*- coding:utf-8 -*-
import urllib
import urllib2
http_handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(http_handler)
request = urllib2.Request("http://tieba.baidu.com")
urllib2.install_opener(opener)
response = urllib2.urlopen(request)
print response.read()