urllib發送帶參數的post請求
- 定義參數
- 將參數轉化為字符串
- 將字符串編碼為字節bytes類型
- 組裝請求對象
- 發送請求,得到返回的結果
- 將返回結果按照指定的編碼方式解碼
from urllib import request, parse
def fanyi(keyword):
url = "https://fanyi.baidu.com/sug"
data = { # 定義參數
'kw': keyword
}
data = parse.urlencode(data) # 將參數編碼成字符串
data = bytes(data, encoding='utf-8') # 再將字符串編碼為字節類型
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
}
req = request.Request(url, data=data, headers=headers) #組裝請求對象,傳入url, 字節類型的參數data,相應的header頭信息。
res = request.urlopen(req) # 發送請求
# print(res)
html = res.read().decode('utf-8') # 將接收到的數據使用utf8解碼
json_data = json.loads(html)
print(json_data['data'][0]['v'])