urllib庫(二)

處理GET和POST請求
1.GET請求

import urllib.request
import urllib.parse

# 準備URL
url = 'http://www.baidu.com/s?'
# 準備字典參數
param = {'wd': 'douyuTV'}
# 進行url編碼
param_str = urllib.parse.urlencode(param)
# 拼接URL
url = url + param_str

# 準備請求頭
headers = {'User-Agent': '。。。。。'}

# 構造Request
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(response)
print(response.read().decode())

2.POST請求

import urllib.request

# 準備UR
url = '.........'
# 準備數據
data = {'': '',
			'': ''}
 # 對數據進行URL編碼
 data = urllib.parse.urlencode()
 # 轉換爲bytes對象
 data = bytes(data.encode())

# 準備請求頭
headers = {'User_agent': '.......'}
# 構造Request對象
request = urllib.request.Request(url, data=data, headers=heardes)
response = uellib.request.urlopen(request)

print(response.read().decode)

3.添加特定的headers
添加自定義請求頭的例子,如下:
在這裏插入圖片描述
4.自定義opener
opener是urlb.request.OpenerDirector類的對象,我們之前一直都在使用的 urlopen,就是模塊幫我們構建好的一個 opener,但是它不支持代理、 Cookie等其他的HTTP/HTTPs高級功能。所以如果要想設置代理,不能使用自帶的 urlopen,而是要自定義 opener。自定義 opener需要執行下列三個步驟:
1.使用相關的 Handler處理器創建特定功能的處理器對象
2.通過 urtlib.request.build_opener0方法使用這些處理器對象創建自定義的 opener對象
3.使用自定義的 opener對象,調用open方法發送請求。這裏需要注意的是,如果程序裏所有的請求都使用自定義的 opener,可以使用urb2 install opener0將自定義的 opene對象定義爲全局 opener,表示之後凡是調用 urlopen,都將使用自定義的 opener。接下來我們實現一個最簡單的自定義 opener,具體代碼如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章