久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何利用python下載電影

 仙熊 2022-10-02 發(fā)布于上海

【一、項(xiàng)目背景】

相信大家都有一種頭疼的體驗(yàn),,要下載電影特別費(fèi)勁,,對(duì)吧?要一部一部的下載,,而且不能直觀的知道最近電影更新的狀態(tài),。

今天小編以電影天堂為例,帶大家更直觀的去看自己喜歡的電影,,并且下載下來(lái),。

7ebde0224d78f36ef95ed020bf06d3013fa.png

【二、項(xiàng)目準(zhǔn)備】

首先 我們第一步我們要安裝一個(gè)Pycharm的軟件,。Pycharm軟件安裝可以看這篇教程:Python環(huán)境搭建—安利Python小白的Python和Pycharm安裝詳細(xì)教程,。

電影天堂網(wǎng)的網(wǎng)址:

https://www./html/gndy/dyzz/list_23_1.html

我們需要下載幾個(gè)庫(kù),怎么下載呢,?首先打開(kāi)Pycharm點(diǎn)擊File再點(diǎn)開(kāi)setting,。

96ab46e5a7150a7fa476fc4b99dab09d73d.png

打開(kāi)后會(huì)出現(xiàn)這個(gè)界面點(diǎn)擊你的項(xiàng)目名字(project:(你的項(xiàng)目名字))project interpreter點(diǎn)擊加號(hào)下載我們需要的庫(kù)本項(xiàng)目需要(requests,requests,,time,,re模塊),如下圖所示,。

c683e58135f7c93f58689258428106234f1.png

如果還缺少相應(yīng)庫(kù)的話,,可以按照如下方式進(jìn)行下載和安裝。

a5b145b2bcc4ab10cd1896e6c437fb1e136.png

【三,、項(xiàng)目實(shí)施】

我們需要(requests,,requests,time,,re模塊 ),,如下圖所示。

191e66d11de528f14a5a180d7cf91b88201.png

用封裝方法去實(shí)現(xiàn)各個(gè)部分功能,。首先要寫(xiě)一個(gè)框架 :構(gòu)造一個(gè)類(lèi)FilmSky 然后定義一個(gè)—init方法里繼承(self),,再定義一個(gè)主方法(main),。最后實(shí)現(xiàn)這個(gè)main方法,。代碼如下:

d2c7ba6f836f39e5d34ee2a58ebcf264083.png

這個(gè)time是用于防止反爬,設(shè)置的時(shí)間延時(shí)。

首先我們來(lái)分析一下這個(gè)網(wǎng)址下一頁(yè)得到特點(diǎn),。

b6be1d4baca759c4bd3fa532b121ad72cee.png

通過(guò)點(diǎn)擊了三頁(yè)我們會(huì)發(fā)現(xiàn)地址都是在原有的基礎(chǔ)上“23—3,,4,5”這樣的變化,。

我們可以用{}去代替變化的值就像這樣:

https://www./html/gndy/dyzz/list_23_{}.html

這樣我們?cè)趇nti方法初始化url地址和構(gòu)造請(qǐng)求頭,。

a50e65deb29e0073e372d5b267a31a91bdb.png

在主方法main函數(shù)里邊用for循環(huán)實(shí)現(xiàn)遍歷網(wǎng)址。

5e339522eaf7a53533bd7dd1982cd71f596.png

得到下圖這樣的結(jié)果:

9483988734b2c4e1b6d286524db619947e9.png

說(shuō)明你已經(jīng)成功一半了加油??!

現(xiàn)在我們需要對(duì)這些網(wǎng)址發(fā)生請(qǐng)求,為了更直觀的看出來(lái),,我們用一個(gè)類(lèi)寫(xiě),。

我們用requests發(fā)生請(qǐng)求 這個(gè)網(wǎng)站的編碼是gbk (怎么看網(wǎng)站的編碼?)。

打開(kāi)一個(gè)網(wǎng)站右鍵檢查在header的標(biāo)簽,,以這個(gè)網(wǎng)站為例,,可以看到charset=“gb312”。

這個(gè)gb2312就是編碼 我們常見(jiàn)的編碼方式有2種(utf_8, gbk),。

5e4d6fd5b907e2098ba82d7d6e15a260a34.png

489a1f45916c8a3f4915701a6d33c0f0754.png

我們可以驗(yàn)證一下是不是真的請(qǐng)求到了,。使用Print(html)看到這個(gè)結(jié)果(一個(gè)完整的html網(wǎng)頁(yè))說(shuō)明請(qǐng)求成功。

ea219b652cc35c28dea7b84ec2d5efc81a0.png

我們?cè)俣x這個(gè)方法(對(duì)我們的網(wǎng)頁(yè)代碼進(jìn)行解析),。

我們用正則表達(dá)式 來(lái)解析數(shù)據(jù) 我們右鍵檢查可以看到我們要的網(wǎng)站在table里面的

標(biāo)簽的標(biāo)簽的href,。

708dd73805de145d30ba62febdab30564c1.png

所以我們可以先找到table,一層一層的去找,,可以參考一下下面的圖,。

b5b06d3b1f35fdb1cda84f210fdc8045e1c.png

正則表達(dá)式就是(.*?)里面就是你想要得到的內(nèi)容,,“.*,?”就是可以省略其中的標(biāo)簽,取到你想要地區(qū)那一層,。for循環(huán)遍歷得到每個(gè)網(wǎng)址,,點(diǎn)擊這些網(wǎng)址我們要對(duì)二級(jí)頁(yè)面發(fā)生請(qǐng)求,并解析它,。

因?yàn)樵诰W(wǎng)頁(yè)網(wǎng)址上的鏈接有一些是空的 ,,所有這樣會(huì)導(dǎo)致電影下載的鏈接不匹配。所以我們要加個(gè)判斷,,如果下載鏈接的長(zhǎng)度大于0那么就照常顯示,,否則就給它一個(gè)空值,這樣就不會(huì)不對(duì)應(yīng)了,。最后返回這個(gè)結(jié)果,,如下圖所示,。

a4b39f20c95469431bb07fadd636b9feb24.png

點(diǎn)開(kāi)第二級(jí)頁(yè)面如圖右鍵點(diǎn)擊下載鏈接,如下圖所示:

42d39156e5c7bad4e71c9e79583402c6b8a.png

2760956eff41b1912878d639bea452f1c1e.png

我們用正則表達(dá)式解析 得到我們下載鏈接地址,,如下圖所示:

c108f73d8040f1a63ce1a56ea37f1f5f812.png

看去了不是很美觀,,我們把鏈接處理一下,如下圖所示:

3f94864102288999191dcce2aa7839fe720.png

得到結(jié)果,,如下圖所示:

d05b0dfac6edb1a42f26727b508ea1d2dd2.png

最后我們用把數(shù)據(jù)保存在一個(gè)字典加上下載鏈接和電影名字:

4579456540f739b7a1c903d34ec55a737cd.png

最后我們優(yōu)化一下請(qǐng)求的代碼有點(diǎn)重復(fù) 我們優(yōu)化一下,;

用一個(gè)值去保存說(shuō)明請(qǐng)求頭的內(nèi)容以后請(qǐng)求我們只有調(diào)用這個(gè)方法進(jìn)行請(qǐng)求就好,如下圖所示:

5a7102e117fd41b798de9610522c723690a.png

程序運(yùn)行之后可以看到效果圖,,如下圖所示:

d5d67e5e0039aaaf10f6e8de86f09759e5d.png

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多