python爬蟲(chóng) urllib模塊發(fā)起post請(qǐng)求過(guò)程解析
urllib模塊發(fā)起的POST請(qǐng)求
案例:爬取百度翻譯的翻譯結(jié)果
1.通過(guò)瀏覽器捉包工具,找到POST請(qǐng)求的url
針對(duì)ajax頁(yè)面請(qǐng)求的所對(duì)應(yīng)url獲取,需要用到瀏覽器的捉包工具。查看百度翻譯針對(duì)某個(gè)字條發(fā)送ajax請(qǐng)求,所對(duì)應(yīng)的url
點(diǎn)擊clear按鈕可以把抓包工具,所抓到請(qǐng)求清空
然后填上翻譯字條發(fā)送ajax請(qǐng)求,紅色框住的都是發(fā)送的ajax請(qǐng)求
抓包工具All按鈕代表 顯示抓到的所有請(qǐng)求 ,包括GET、POST請(qǐng)求 、基于ajax的POST請(qǐng)求
XHR代表 只顯示抓到的基于ajax的POST請(qǐng)求
哪個(gè)才是我們所要的基于ajax的POST請(qǐng)求,這個(gè)POST請(qǐng)求是攜帶翻譯字條的蘋(píng)果請(qǐng)求參數(shù)
再看看這個(gè)POST請(qǐng)求 對(duì)應(yīng)的請(qǐng)求URL ,這個(gè)URL是我們要請(qǐng)求的URL
發(fā)起POST請(qǐng)求之前,要處理POST請(qǐng)求攜帶的參數(shù) 3步流程:
一、將POST請(qǐng)求封裝到字典
二、使用parse模塊中的urlencode(返回值類型是字符串類型)進(jìn)行編碼處理
三、將步驟二的編碼結(jié)果轉(zhuǎn)換成byte類型
import urllib.request import urllib.parse # 1.指定url url = 'https://fanyi.baidu.com/sug' # 發(fā)起POST請(qǐng)求之前,要處理POST請(qǐng)求攜帶的參數(shù) 流程: # 一、將POST請(qǐng)求封裝到字典 data = { # 將POST請(qǐng)求所有攜帶參數(shù)放到字典中 'kw':'蘋(píng)果', } # 二、使用parse模塊中的urlencode(返回值類型是字符串類型)進(jìn)行編碼處理 data = urllib.parse.urlencode(data) # 三、將步驟二的編碼結(jié)果轉(zhuǎn)換成byte類型 data = data.encode() '''2. 發(fā)起POST請(qǐng)求:urlopen函數(shù)的data參數(shù)表示的就是經(jīng)過(guò)處理之后的 POST請(qǐng)求攜帶的參數(shù) ''' response = urllib.request.urlopen(url=url,data=data) data = response.read() print(data)
把拿到的翻譯結(jié)果 去json在線格式校驗(yàn)(在線JSON校驗(yàn)格式化工具(Be JSON)),
點(diǎn)擊格式化校驗(yàn)和unicode轉(zhuǎn)中文
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python基于jieba庫(kù)進(jìn)行簡(jiǎn)單分詞及詞云功能實(shí)現(xiàn)方法
這篇文章主要介紹了Python基于jieba庫(kù)進(jìn)行簡(jiǎn)單分詞及詞云功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python分詞庫(kù)jieba以及wordcloud庫(kù)進(jìn)行詞云繪制相關(guān)步驟與操作技巧,需要的朋友可以參考下2018-06-06Ubuntu下使用python讀取doc和docx文檔的內(nèi)容方法
今天小編就為大家分享一篇Ubuntu下使用python讀取doc和docx文檔的內(nèi)容方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python正則表達(dá)式匹配[]中間為任意字符的實(shí)例
今天小編就為大家分享一篇python正則表達(dá)式匹配[]中間為任意字符的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python Canny邊緣檢測(cè)算法的實(shí)現(xiàn)
這篇文章主要介紹了python Canny邊緣檢測(cè)算法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python實(shí)現(xiàn)遠(yuǎn)程通過(guò)網(wǎng)絡(luò)郵件控制計(jì)算機(jī)重啟或關(guān)機(jī)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遠(yuǎn)程通過(guò)網(wǎng)絡(luò)郵件控制計(jì)算機(jī)重啟或關(guān)機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02使用python如何將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集
這篇文章主要介紹了使用python如何將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09python實(shí)現(xiàn)簡(jiǎn)單點(diǎn)對(duì)點(diǎn)(p2p)聊天
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單點(diǎn)對(duì)點(diǎn)p2p聊天,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09Django restframework 框架認(rèn)證、權(quán)限、限流用法示例
這篇文章主要介紹了Django restframework 框架認(rèn)證、權(quán)限、限流用法,結(jié)合實(shí)例形式詳細(xì)分析了Djangorestframework 框架認(rèn)證、權(quán)限、限流的具體使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12