使用python爬蟲實現百度翻譯功能
python爬蟲實現百度翻譯: python解釋器【模擬瀏覽器】,發送【post請求】,傳入待【翻譯的內容】做爲參數,獲取【百度翻譯的結果】python
經過開發者工具,獲取發送請求的地址git
提示: 翻譯內容發送的請求地址,絕對不是打開百度翻譯的那個地址,想要抓取地址,就要藉助【瀏覽器的開發者工具】,或者其餘抓包工具github
下面介紹獲取請求地址的具體方法
以Chrome爲例json
打開百度翻譯:http://fanyi.baidu.com/
【點擊右鍵】>【檢查】>【network】(若是是火狐瀏覽器,點擊【網絡】)
點擊【XHR】項,(有些須要刷新,有些異步的請求不須要刷新)
在頁面【輸入翻譯的詞彙】
在XHR項下,查找包含【輸入須要翻譯的詞彙】的請求
查看請求的參數,須要【點擊請求】>【Headers】>最下面的【Form Data】
(這裏有一個坑:咱們會發現有多個sug項,實際上是由於百度翻譯只要每輸入一個字母就會發送一次請求,因此雖然多個請求的地址都是同樣的,可是隻有最後一個sug項的參數纔是最後的詞彙)瀏覽器
請求地址在這裏網絡
不會配置環境,安裝python的包,請參考下一篇:
https://i-beta.cnblogs.com/posts/edit-done;postId=11945465
py05bdfanyi.py文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py05bdfanyi.pypython爬蟲
1 # python爬蟲實現百度翻譯 2 # urllib和request POST參數提交 3 # 缺乏包請自行查看以前的筆記 4 5 from urllib import request,parse 6 import json 7 8 def fanyi(keyword): 9 base_url = 'http://fanyi.baidu.com/sug' 10 11 # 構建請求對象 12 data = { 13 'kw': keyword 14 } 15 data = parse.urlencode(data) 16 17 # 模擬瀏覽器 18 header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"} 19 20 req = request.Request(url=base_url,data=bytes(data,encoding='utf-8'),headers=header) 21 res = request.urlopen(req) 22 23 # 獲取響應的json字符串 24 str_json = res.read().decode('utf-8') 25 # 把json轉換成字典 26 myjson = json.loads(str_json) 27 info = myjson['data'][0]['v'] 28 print(info) 29 30 if __name__=='__main__': 31 while True: 32 keyword = input('請輸入翻譯的單詞:') 33 if keyword == 'q': 34 break 35 fanyi(keyword)
若是還有問題未能獲得解決,搜索887934385交流羣,進入後下載資料工具安裝包等。最後,感謝觀看!異步