校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > python爬蟲之爬取百度翻譯

python爬蟲之爬取百度翻譯

熱門標(biāo)簽:地圖標(biāo)注的意義點(diǎn) 浙江電銷卡外呼系統(tǒng)好用嗎 315電話機(jī)器人廣告 地圖制圖標(biāo)注位置改變是移位嗎 蓋州市地圖標(biāo)注 南京銷售外呼系統(tǒng)軟件 地圖標(biāo)注微信發(fā)送位置不顯示 上海機(jī)器人外呼系統(tǒng)哪家好 房產(chǎn)電銷外呼系統(tǒng)

破解百度翻譯

翻譯是一件麻煩的事情,如果可以寫一個(gè)爬蟲程序直接爬取百度翻譯的翻譯結(jié)果就好了,可當(dāng)我打開百度翻譯的頁(yè)面,輸入要翻譯的詞時(shí)突然發(fā)現(xiàn)不管我要翻譯什么,網(wǎng)址都沒(méi)有任何變化,那么百度翻譯要怎么爬取呢?

爬取百度翻譯之前,我們先要明白百度翻譯是怎么在不改變網(wǎng)址的情況下實(shí)現(xiàn)翻譯的。百度做到這一點(diǎn)是用 AJAX 實(shí)現(xiàn)的,簡(jiǎn)單地說(shuō),AJAX的作用是在不重新加載網(wǎng)頁(yè)的情況下進(jìn)行局部的刷新。

了解了這一點(diǎn),那么我們要怎么得到 AJAX 工作時(shí)請(qǐng)求的URL呢?老規(guī)矩,使用抓包工具。

爬蟲步驟

在 “百度翻譯” 頁(yè)面右鍵,選擇“Notework”選擇 “ XHR ”

如果畫面沒(méi)有任何數(shù)據(jù),可以試著輸入要翻譯的詞,比如說(shuō)我輸入“dog”時(shí),就發(fā)生了如下的變化

我們看到此時(shí)的 kw 是我要翻譯的詞,說(shuō)明這是我們要找的東西。

(注意:我們發(fā)現(xiàn)其中有三個(gè) sug ,我選的只是其中一個(gè)。如果我們?nèi)紟c(diǎn)開看,就會(huì)發(fā)現(xiàn),他們的 kw 分別是:d 和 do。這是因?yàn)槲掖?dog 時(shí)一個(gè)單詞一個(gè)單詞打的,而 AJAX 是時(shí)時(shí)刷新。如果輸入中文就不會(huì)出現(xiàn)這種情況。翻譯中文時(shí),我們找的也不是 sug 了,具體是什么,就看哪個(gè)包的 data 的值是我們要翻譯的詞。)

然后我們?cè)诨氐缴厦妫业轿覀冃枰付ǖ?URL 、我們要選擇的請(qǐng)求命令以及爬取到的數(shù)據(jù)的類型。

歐克,做到這里我們的前期準(zhǔn)備就完成了,下面就可以開始著手寫代碼了。

import requests

if __name__ == "__main__":
    # 指定 url
    url = "https://fanyi.baidu.com/sug"

    # 要翻譯的詞
    keyword = input("需要翻譯的詞:")

    data = {
        "kw": keyword
        }

    # UA 偽裝
    header = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
        }

    # 發(fā)送請(qǐng)求
    response = requests.post(url = url, data = data, headers = header).json()

    print(response)

我們運(yùn)行程序發(fā)現(xiàn)結(jié)果是這樣的:

因?yàn)檎?qǐng)求到的數(shù)據(jù)比較短,所以我們比較容易地看出數(shù)據(jù)的結(jié)構(gòu)是字典里有列表,列表里又有字典結(jié)構(gòu)。如果比較長(zhǎng),我們可以使用在線 json 轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)是這樣的

我們只需要 dog 的釋義,所以我們還可以對(duì)我們代碼進(jìn)行優(yōu)化

print(response["data"][0]["v"])

注意

關(guān)于 data 的字典,并不是說(shuō)只需要 “ kw ”: dog, data 的字典里要存儲(chǔ)的是抓包工具里 from data 里所有的值,如果沒(méi)有值,那么相對(duì)應(yīng)的值就是空字符串。

如果學(xué)會(huì)了,你試著自己寫一個(gè)破解有道翻譯的爬蟲程序吧!

到此這篇關(guān)于python爬蟲之爬取百度翻譯的文章就介紹到這了,更多相關(guān)python爬取百度翻譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python做翻譯軟件詳解,小白也看得明白
  • 告別網(wǎng)頁(yè)搜索!教你用python實(shí)現(xiàn)一款屬于自己的翻譯詞典軟件
  • 用 Python 寫的文檔批量翻譯工具效果竟然超出想象
  • 教你如何利用Python批量翻譯英文Word文檔并保留格式
  • 三大Python翻譯神器再也不用擔(dān)心學(xué)不好英語(yǔ)

標(biāo)簽:日照 貴州 赤峰 金華 陽(yáng)泉 雙鴨山 克拉瑪依 臨汾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python爬蟲之爬取百度翻譯》,本文關(guān)鍵詞  python,爬蟲,之爬,取,百度,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python爬蟲之爬取百度翻譯》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python爬蟲之爬取百度翻譯的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 台安县| 彝良县| 营山县| 齐齐哈尔市| 安乡县| 额敏县| 安乡县| 嘉善县| 成安县| 壶关县| 嵊州市| 咸丰县| 法库县| 雷州市| 濮阳县| 吴堡县| 义乌市| 丽水市| 晋宁县| 沙河市| 甘谷县| 保康县| 盐池县| 上高县| 长葛市| 台安县| 惠安县| 上蔡县| 山东省| 外汇| 河源市| 宁乡县| 嘉义市| 白沙| 富宁县| 屏东市| 新安县| 高安市| 宜丰县| 大丰市| 德钦县|