日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...

發(fā)布時間:2023/12/8 python 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

小編在學(xué)習(xí)英語的時候,遇到不認識的英語單詞,會用百度翻譯來查詢單詞的釋義和音標(biāo),并播放單詞的讀音。為了便于復(fù)習(xí)和記憶,需要將單詞的釋義和音標(biāo)以復(fù)制粘貼的方式保存到本地。

這個過程非常繁瑣,于是小編就想能否利用Python寫一個爬蟲小程序,來自動完成這些工作呢?

為了完成這樣一個小程序,我們需要完成以下幾個步驟:

1.輸入單詞,查詢單詞的釋義和音標(biāo)

2.下載音頻并播放讀音

3.保存到本地Excel文件中,并自動調(diào)整格式

4.打包成可執(zhí)行的exe程序

在本篇文章中,我們將講解如何完成第一個步驟:輸入單詞,查詢單詞的釋義和音標(biāo)。

1

打開百度翻譯,確定需要抓取的信息

打開以后,我們輸入單詞“Python”,點擊網(wǎng)頁中的“翻譯”按鈕進行查詢,出現(xiàn)如下圖所示內(nèi)容。用紅框框出的單詞釋義和音標(biāo),是我們需要抓取的信息。

同時,我們想要單詞的釋義和音標(biāo)在Excel中以下圖所示的結(jié)構(gòu)保存。

2

利用開發(fā)者工具(DevTools)進行抓包分析

以Chrome瀏覽器為例,我們可以通過以下方式打開開發(fā)者工具:

1. 在網(wǎng)頁空白處點擊右鍵,然后左鍵點擊“檢查”

2. Ctrl + Shift + I

3. F12

打開以后,點擊“Network”選項,如下圖所示:

根據(jù)提示,我們按“F5”刷新網(wǎng)頁,網(wǎng)頁重新加載,在“Network”面板中,可以看到從服務(wù)器發(fā)送過來的數(shù)據(jù),包括HTML文件、JS文件、圖片等。

我們點擊“l(fā)ogo_cbfea26.png”,再點擊“Preview”,會出現(xiàn)百度翻譯的圖片,也就是網(wǎng)頁左上角的Logo。

這些從百度翻譯所在服務(wù)器傳遞過來的數(shù)據(jù)和文件經(jīng)過瀏覽器處理和渲染,最終呈現(xiàn)出我們在瀏覽器里看到的網(wǎng)頁界面。

3

找到目標(biāo)URL,發(fā)送請求

我們的目標(biāo)是找到從服務(wù)器傳遞過來包含單詞釋義和音標(biāo)內(nèi)容的URL地址,然后利用Python去請求該URL地址,得到目標(biāo)內(nèi)容。

有些時候,從瀏覽器傳輸過來的數(shù)據(jù)太多太雜,我們無法快速找到目標(biāo)內(nèi)容。這是一個熟能生巧的過程,嘗試次數(shù)多了,自然能夠快速定位目標(biāo)URL。

這里介紹小編常用的一個方法:

1. 點擊開發(fā)者工具左上方的清理按鈕,將原先所有的數(shù)據(jù)刪除,然后點擊網(wǎng)頁中的“翻譯”按鈕,網(wǎng)頁內(nèi)容局部加載,在“Network”中會出現(xiàn)新傳遞過來的數(shù)據(jù)。

2. 傳輸過來的數(shù)據(jù)有多種類型,我們可以利用開發(fā)者工具中自帶的篩選功能。一般目標(biāo)內(nèi)容在“XHR”或者“Doc”中,我們先點擊“XHR”選項。具體操作如下圖所示。

3. 我們點擊“v2transapi”,然后點擊“Preview”選項,可以看到具體的內(nèi)容。我們依次點擊:“direct_result” – “simple_means” – “symbols” – “0” – “parts” – “0” – “means”,這樣我們就看到了單詞釋義以及音標(biāo)。

5. 在“Request Headers”中會出現(xiàn)請求頭信息,我們在請求網(wǎng)址的時候一定要帶上這些信息,不然不會返回目標(biāo)內(nèi)容。

6. 在“Form Data”這一欄中,可以看到有一行是“query : Python”,說明我們要查詢的單詞是“Python”。所以我們要查詢不同的單詞只需要在這行更改就行了。

7. 代碼如下(由于篇幅所限,省去一些不重要的代碼,我們會附上完整代碼):

4

加載JS代碼得到sign

我們最終實現(xiàn)的目標(biāo)是能夠查詢不同的單詞。我們在查詢其他單詞時發(fā)現(xiàn),sign會隨著所查詢單詞的變化而變化。以查詢“Python”和“python”為例,我們發(fā)現(xiàn)sign分別為“587387.791882”和“477811.239938”。

每一個單詞都會對應(yīng)一個sign,它是根據(jù)單詞本身用JS代碼生成的。這是一個反爬蟲手段,如果沒有sign,會有很多爬蟲輕而易舉地去抓取這些信息。我們需要從網(wǎng)頁加載的JS代碼中找出生成sign的那一段代碼,這又是一個復(fù)雜而又困難的工作。好在網(wǎng)上已經(jīng)有熱心的網(wǎng)友將這段JS代碼找到了,我們直接照搬下來就行。

我們用一個專門執(zhí)行JS代碼的模塊“execjs”來生成sign,代碼如下:

將兩段代碼合并,然后發(fā)送請求,得到如下數(shù)據(jù)。這是一段字符串,這其實是JSON格式的數(shù)據(jù),我們可以用Python自帶的模塊“json”來進行處理。

5

處理JSON格式的數(shù)據(jù)

這里直接貼代碼,代碼如下。

打開“infos”這個列表,我們可以看到Python已經(jīng)成功處理了那段字符串,并以“l(fā)ist”的形式存儲單詞釋義和音標(biāo)。

至此,我們利用Python成功完成了第一個步驟:輸入單詞,查詢單詞的釋義和音標(biāo)。

歡迎大家踴躍投稿,內(nèi)容有關(guān)人文社會科學(xué)的即可,可以是學(xué)術(shù)前沿思想介紹、各種定量研究技術(shù)和方法介紹、各種軟件(stata、Python、R語言,數(shù)據(jù)可視化等等)數(shù)據(jù)處理及分析技巧,可以是網(wǎng)絡(luò)爬蟲技巧,也可以是學(xué)術(shù)論文寫作與發(fā)表等相關(guān)內(nèi)容。

投稿要求:

1、務(wù)必原創(chuàng)、禁止抄襲;

2、務(wù)必準(zhǔn)確、詳細,有例子,有數(shù)據(jù),有截圖;

注意事項:

1、所有投稿都會經(jīng)過本公眾號運營團隊成員的審核,審核通過才可錄用,一經(jīng)錄用,我們會在推文里注明作者署名,并有稿酬提供;

2、郵件請注明投稿,郵件名為“投稿+推文名稱+作者+聯(lián)系方式”;

以人文之情懷

以學(xué)術(shù)為志業(yè)

···········

總結(jié)

以上是生活随笔為你收集整理的python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。