urllib模塊發(fā)起的POST請求
案例:爬取百度翻譯的翻譯結(jié)果
1.通過瀏覽器捉包工具,找到POST請求的url
針對ajax頁面請求的所對應(yīng)url獲取,需要用到瀏覽器的捉包工具。查看百度翻譯針對某個(gè)字條發(fā)送ajax請求,所對應(yīng)的url
點(diǎn)擊clear按鈕可以把抓包工具,所抓到請求清空
然后填上翻譯字條發(fā)送ajax請求,紅色框住的都是發(fā)送的ajax請求
抓包工具All按鈕代表 顯示抓到的所有請求 ,包括GET、POST請求 、基于ajax的POST請求
XHR代表 只顯示抓到的基于ajax的POST請求
哪個(gè)才是我們所要的基于ajax的POST請求,這個(gè)POST請求是攜帶翻譯字條的蘋果請求參數(shù)
再看看這個(gè)POST請求 對應(yīng)的請求URL ,這個(gè)URL是我們要請求的URL
發(fā)起POST請求之前,要處理POST請求攜帶的參數(shù) 3步流程:
一、將POST請求封裝到字典
二、使用parse模塊中的urlencode(返回值類型是字符串類型)進(jìn)行編碼處理
三、將步驟二的編碼結(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(返回值類型是字符串類型)進(jìn)行編碼處理 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在線格式校驗(yàn)(在線JSON校驗(yàn)格式化工具(Be JSON)),
點(diǎn)擊格式化校驗(yàn)和unicode轉(zhuǎn)中文
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
