Python爬蟲教程-05-python爬蟲實現百度翻譯


使用python爬蟲實現百度翻譯功能

python爬蟲實現百度翻譯: python解釋器【模擬瀏覽器】,發送【post請求】,傳入待【翻譯的內容】作為參數,獲取【百度翻譯的結果】

通過開發者工具,獲取發送請求的地址

提示: 翻譯內容發送的請求地址,絕對不是打開百度翻譯的那個地址,想要抓取地址,就要借助【瀏覽器的開發者工具】,或者其他抓包工具

下面介紹獲取請求地址的具體方法

以Chrome為例

  • 打開百度翻譯:http://fanyi.baidu.com/
  • 【點擊右鍵】>【檢查】>【network】(如果是火狐瀏覽器,點擊【網絡】)
  • 點擊【XHR】項,(有些需要刷新,有些異步的請求不需要刷新)
  • 在頁面【輸入翻譯的詞匯】
  • 在XHR項下,查找包含【輸入需要翻譯的詞匯】的請求
  • 查看請求的參數,需要【點擊請求】>【Headers】>最下面的【Form Data】
    (這里有一個坑:我們會發現有多個sug項,其實是因為百度翻譯只要每輸入一個字母就會發送一次請求,所以雖然多個請求的地址都是一樣的,但是只有最后一個sug項的參數才是最后的詞匯)

操作截圖

這里寫圖片描述

請求地址在這里

這里寫圖片描述

獻上實現的代碼

直接上代碼,具體步驟下載注釋上了

# python爬蟲實現百度翻譯
# urllib和request POST參數提交
# 缺少包請自行查看之前的筆記

from urllib import request,parse
import json

def fanyi(keyword):
    base_url = 'http://fanyi.baidu.com/sug'

    # 構建請求對象
    data = {
        'kw': keyword
    }
    data = parse.urlencode(data)

    # 模擬瀏覽器
    header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}

    req = request.Request(url=base_url,data=bytes(data,encoding='utf-8'),headers=header)
    res = request.urlopen(req)

    # 獲取響應的json字符串
    str_json = res.read().decode('utf-8')
    # 把json轉換成字典
    myjson = json.loads(str_json)
    info = myjson['data'][0]['v']
    print(info)

if __name__=='__main__':
    while True:
        keyword = input('請輸入翻譯的單詞:')
        if keyword == 'q':
            break
        fanyi(keyword)

代碼運行

這里寫圖片描述

后續還會更精彩

python爬蟲實現百度翻譯: python解釋器【模擬瀏覽器】,發送【post請求】,傳入待【翻譯的內容】作為參數,獲取【百度翻譯的結果】

更多文章鏈接:Python 爬蟲隨筆


- 本筆記不允許任何個人和組織轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM