python爬蟲 urllib模塊發(fā)起post請求過程解析
urllib模塊發(fā)起的POST請求
案例:爬取百度翻譯的翻譯結(jié)果
1.通過瀏覽器捉包工具,找到POST請求的url
針對ajax頁面請求的所對應(yīng)url獲取,需要用到瀏覽器的捉包工具。查看百度翻譯針對某個字條發(fā)送ajax請求,所對應(yīng)的url
點擊clear按鈕可以把抓包工具,所抓到請求清空

然后填上翻譯字條發(fā)送ajax請求,紅色框住的都是發(fā)送的ajax請求

抓包工具All按鈕代表 顯示抓到的所有請求 ,包括GET、POST請求 、基于ajax的POST請求
XHR代表 只顯示抓到的基于ajax的POST請求

哪個才是我們所要的基于ajax的POST請求,這個POST請求是攜帶翻譯字條的蘋果請求參數(shù)

再看看這個POST請求 對應(yīng)的請求URL ,這個URL是我們要請求的URL

發(fā)起POST請求之前,要處理POST請求攜帶的參數(shù) 3步流程:
一、將POST請求封裝到字典
二、使用parse模塊中的urlencode(返回值類型是字符串類型)進行編碼處理
三、將步驟二的編碼結(jié)果轉(zhuǎn)換成byte類型
import urllib.request
import urllib.parse
# 1.指定url
url = 'https://fanyi.baidu.com/sug'
# 發(fā)起POST請求之前,要處理POST請求攜帶的參數(shù) 流程:
# 一、將POST請求封裝到字典
data = {
# 將POST請求所有攜帶參數(shù)放到字典中
'kw':'蘋果',
}
# 二、使用parse模塊中的urlencode(返回值類型是字符串類型)進行編碼處理
data = urllib.parse.urlencode(data)
# 三、將步驟二的編碼結(jié)果轉(zhuǎn)換成byte類型
data = data.encode()
'''2. 發(fā)起POST請求:urlopen函數(shù)的data參數(shù)表示的就是經(jīng)過處理之后的
POST請求攜帶的參數(shù)
'''
response = urllib.request.urlopen(url=url,data=data)
data = response.read()
print(data)
把拿到的翻譯結(jié)果 去json在線格式校驗(在線JSON校驗格式化工具(Be JSON)),
點擊格式化校驗和unicode轉(zhuǎn)中文

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python獲取江蘇疫情實時數(shù)據(jù)及爬蟲分析
為了關(guān)注疫情狀況,今天我們用python來爬一爬疫情的實時數(shù)據(jù),本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08
聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實現(xiàn)
這篇文章主要為大家介紹了聯(lián)邦學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)FedAvg算法實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

