Requests库实战(二)---破解百度翻译
生活随笔
收集整理的這篇文章主要介紹了
Requests库实战(二)---破解百度翻译
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
功能:爬取到頁面中翻譯后的文本數(shù)據(jù)
獲取請求地址和請求方式
- 先輸入dog翻譯一下,發(fā)現(xiàn)是Ajax請求(動態(tài)實時刷新頁面),Ajax請求的數(shù)據(jù)包可以在網(wǎng)絡的XHR中看到。
- 找到輸入dog的數(shù)據(jù)包,通過標頭的表單數(shù)據(jù)kw:dog以及響應的結(jié)果就可以看到是這個數(shù)據(jù)包。
- 在標頭的常規(guī)中得到請求URL和請求方式(post),在響應頭看到響應結(jié)果類型為json數(shù)據(jù)
如何判斷是不是Ajax請求?
動態(tài)實時刷新頁面,只要頁面出現(xiàn)了新內(nèi)容并且url沒有發(fā)生改變就是Ajax請求。
完整代碼
import requests import json#偽裝UA header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Edg/91.0.864.48' } word=input('輸入要翻譯的單詞:') #post請求參數(shù)處理(同get請求的param一樣) data={'kw':word #通過標頭的表單數(shù)據(jù)可看到 } url='https://fanyi.baidu.com/sug' response=requests.post(url=url,data=data,headers=header)#獲取json數(shù)據(jù),使用response.text的話得到的內(nèi)容是字節(jié)序列 doc_obj=response.json() print(doc_obj) filename=word+'.json' with open(filename,'w',encoding='utf-8') as f:json.dump(doc_obj,f,ensure_ascii=False) #第三個參數(shù)是因為中文不能使用ascii編碼 print('獲取翻譯結(jié)果成功!')總結(jié)
以上是生活随笔為你收集整理的Requests库实战(二)---破解百度翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好听的三人闺蜜网名138个
- 下一篇: 伴郎伴娘一定要未婚吗(结婚选伴郎伴娘的讲