不用下載券也能下載百度文庫(kù)資料,Python幫你輕松搞定

大家可能平時(shí)都有在百度文庫(kù)下載文檔的經(jīng)歷,費(fèi)盡心思好不容易在文庫(kù)找了一份可以用的資料,一看需要用下載券下載,搞的人很煩。

有的人為了節(jié)省時(shí)間,就任性辦理了個(gè)文庫(kù)VIP,再也不用糾結(jié)怎么下文檔了。如果你是一個(gè)百度文庫(kù)的重度用戶,這樣做當(dāng)然沒問題了。

但有些學(xué)生黨、上班族,他們可能只是為了交個(gè)作業(yè),做一個(gè)產(chǎn)品匯報(bào)的PPT等等,對(duì)這部分人群再去辦理VIP,我覺得沒必要,畢竟掙錢也不容易,咱能省就省。

有的人會(huì)說,我會(huì)選擇去某寶買下載券,需要用的時(shí)候,用賣家給的賬戶和密碼下載就可以了,這個(gè)方法我也用過,不過隨著百度文庫(kù)不斷修復(fù)漏洞,一些賣家的賬戶和密碼,很快就會(huì)失效,這也不是一個(gè)長(zhǎng)久之計(jì)。

當(dāng)然除了我上面說的這些方法外,還有一些其他的神操作,比如,自己一點(diǎn)點(diǎn)去復(fù)雜粘貼、放到手機(jī)版的百度文庫(kù)APP里,再另存為文章、或者用眾所周知的“冰點(diǎn)文庫(kù)”……

在我看來,這些都不是最優(yōu)的解決方案,我今天就和大家分享一個(gè)我自己用Python寫的百度文庫(kù)免下載券的小項(xiàng)目。當(dāng)然,這個(gè)項(xiàng)目主要是用來學(xué)習(xí)Python爬蟲的,如果有任何侵權(quán)嫌疑,請(qǐng)聯(lián)系我刪除!

1.優(yōu)點(diǎn)

不僅可以下載word文檔,而且能下載PPT;

可以下載一個(gè)完整的文檔;

不需要用一些某寶賣家的漏洞網(wǎng)址。

2.準(zhǔn)備工作

(1)本次程序主要用到了火狐瀏覽器的selenium,大家可以在下面網(wǎng)址下載自己火狐瀏覽器對(duì)應(yīng)的驅(qū)動(dòng)geckodriver。下載地址:https://github.com/mozilla/geckodriver/releases/

下載解壓后,將geckodriver.exe安裝在Python的安裝目錄Scripts里面,之后就可以正常使用了。

(2)因?yàn)楸敬雾?xiàng)目還涉及到了PPT文檔的下載,所以,如果你沒安裝pptx模塊,需要在命令行輸入pip3 installpython-pptx提前安裝好。

3.PPT文檔下載

首先我們隨便找一個(gè)需要下載券的PPT文檔,本文以https://wenku.baidu.com/view/a132c661eef9aef8941ea76e58fafab069dc443d.html?rec_flag=default&sxts=1570202117357為例,打開開發(fā)者工具,對(duì)文檔中圖片進(jìn)行分析,如下圖所示:

圖片保存在標(biāo)簽為div里面,所以寫代碼時(shí)首先需要找到這個(gè)標(biāo)簽,然后再把圖片的url提取出來,同時(shí),提取url時(shí)還要注意,有的屬性是“src”,有的是“data-src”,不然就會(huì)出現(xiàn)文檔丟失。主要代碼如下:

4.下載圖片

提取到圖片的url后,就可以下載所有的圖片,并以pictures命名保存在指定的路徑下。代碼如下:

5.組合成PPT

此時(shí)需要將上面下載好的圖片,利用編寫的函數(shù)重新合成ppt,這里就要用到剛才提前準(zhǔn)備好的生成PPT需要的包,此外,為了保證程序順利運(yùn)行,還需要一個(gè)ppt模板,這個(gè)模板里面只有一個(gè)圖片的占位,主要是為了讓所有圖片安裝模板來創(chuàng)建成新的幻燈片。代碼如下:

6.word文檔下載

關(guān)于文檔下載,本文以https://wenku.baidu.com/view/1b5ee5dbad51f01dc281f13e.html?sxts=1570243034873為例。

主要難點(diǎn)是當(dāng)頁(yè)數(shù)過多時(shí),會(huì)出現(xiàn)“繼續(xù)閱讀”的字樣,此時(shí)需要selenium模擬人去自動(dòng)點(diǎn)擊,所以,需要提取找到“繼續(xù)閱讀”的按鈕;另外,還要獲取文檔的下載總頁(yè)碼,最后還需要對(duì)提取的文本進(jìn)行分段整理。

(1)、尋找“繼續(xù)閱讀”位置

本文主要用到了正則表達(dá)式,以及js語法。首先要找到繼續(xù)閱讀的位置,如下圖所示:

(2)、獲取總頁(yè)數(shù)

要獲取整個(gè)文檔,首先要找到文檔的總頁(yè)數(shù),在下圖中找到保存總頁(yè)數(shù)的標(biāo)簽。

還要分析文檔中的文字保存在哪個(gè)標(biāo)簽,如下圖所示:

可以看到,文字主要保存在p標(biāo)簽里,我們找到相應(yīng)的p標(biāo)簽,然后遍歷每一頁(yè),提取文字。最后,還要設(shè)置一個(gè)判斷變量,因?yàn)樘崛〉奈淖謺?huì)有很多行,有的是一個(gè)段的,有的不是一段的文字,這里需要處理一下,主要代碼如下:

7.寫入文檔

將下載好的文檔,以特定的名字寫入新的文檔,這里沒什么難度,代碼如下:

8.結(jié)果展示

(1)、PPT下載

(2)、word下載

總結(jié)

今天分享的這個(gè)用百度文庫(kù)免下載券的實(shí)戰(zhàn)項(xiàng)目,主要用自動(dòng)化測(cè)試工具selenium,可以幫助大家獲取一些付費(fèi)的學(xué)習(xí)資料,大家不用再去某寶買下載券,或者辦VIP了,如果有感興趣的小伙伴,后臺(tái)回復(fù)「文庫(kù)」即可獲得項(xiàng)目源代碼。

最后,再次聲明,本次項(xiàng)目主要用來學(xué)習(xí)Python爬蟲,不能拿來商用,本人概不承擔(dān)所有法律責(zé)任,如果有侵權(quán),請(qǐng)聯(lián)系作者,我馬上刪除。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容