国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 用爬蟲和Flask打造屬于自己的電影網(wǎng)站,完整教程送上!

用爬蟲和Flask打造屬于自己的電影網(wǎng)站,完整教程送上!

時間:2023-07-26 16:51:01 | 來源:網(wǎng)站運營

時間:2023-07-26 16:51:01 來源:網(wǎng)站運營

用爬蟲和Flask打造屬于自己的電影網(wǎng)站,完整教程送上!:也許你曾經(jīng)為了一部電影找遍全網(wǎng)卻沒發(fā)現(xiàn)任何有用的資源,也許你曾經(jīng)被披著電影外衣的網(wǎng)站忽悠進(jìn)去而染上木馬病毒。一部小小的電影搞得你心力交瘁,懷疑人生。不過,作為一名合格的程序員,一向以write the code,change the world所著稱,我們寫的代碼都能改變世界,豈能被這種小事情所屈服?不是不干,要干就干一票大的!這一次,我們祭上萬能的Python語言,用爬蟲技術(shù)加上Flask框架,打造一個屬于自己的電影網(wǎng)站!界面清爽無木馬,PC手機(jī)隨心看!今年告別單身,征服女神的任務(wù),就從這里開始啦~

一、準(zhǔn)備工作




1. 首先你要一個Python解釋器。在目前為止,Python存在兩大主流的版本,一個是Python2.7,一個是Python3.6。Python2.x歷史悠久,支持的庫多,但是畢竟是老版本,一些歷史遺留的問題未能得到解決,比如編碼問題,一些內(nèi)置函數(shù)的執(zhí)行性能等。而Python3優(yōu)化了Python2中的很多底層代碼,并且默認(rèn)的字符串就是unicode類型,無需擔(dān)心編碼問題,很多函數(shù)因為使用了生成器而大大的提高了代碼的執(zhí)行效率。但是Python3因為比較新,所以一些第三方庫還來不及支持Python3(比如進(jìn)程管理工具supervisor就還未支持Python3),但是慢慢的都在支持Python3了,并且Python3也是未來的一個趨勢,Python2已經(jīng)被官方宣布在2020年將全面停止更新。所以現(xiàn)在學(xué)Python,首選Python3。因此我們本個課程,也用Python3來講解。如果您還沒有安裝Python3,可以到官網(wǎng):https://www.python.org,根據(jù)自己的操作系統(tǒng),選擇相應(yīng)的版本下載。安裝過程非常簡單,一頓下一步就可以啦,但是為了不必要的麻煩,給個小提示,千萬不要放在有中文的路徑下面哦~




2. 安裝完P(guān)ython以后,如果不出意外,應(yīng)該是已經(jīng)安裝了pip。通過pip可以非常方便的管理Python第三方包??梢栽贑MD或者任何shell終端輸入pip -V,如果提示了找不到pip命令,說明pip沒有安裝成功。那么可以通過easy_install install pip來進(jìn)行安裝。




3. requests庫。這個庫是專門用來做網(wǎng)絡(luò)請求的。他比Python自帶的urllib庫好用很多,在urllib3的基礎(chǔ)之上做了進(jìn)一步的封裝,讓我們寫網(wǎng)絡(luò)請求的時候不要處理一些類似于url編碼等相關(guān)的無意義的事情。他的slogan是Http for Humans,意思是對人友好的Http請求庫,可以說是非常的形象了。這個庫不是Python內(nèi)置的,因此需要通過pip進(jìn)行安裝。安裝方式也是非常簡單,只要進(jìn)入cmd或者shell終端,輸入pip install requests即可安裝。




4. Scrapy框架。最強(qiáng)大的爬蟲框架,沒有之一!注意,他不是一個簡簡單單的庫,而是一個框架。實現(xiàn)了從url匹配,到數(shù)據(jù)下載,數(shù)據(jù)解析,數(shù)據(jù)存儲等一套完整的組件。讓你寫爬蟲更加輕松,更加健壯,更加高效。我們也是用這個框架來幫我們處理爬蟲,這樣我們可以不間斷的批量的爬取電影信息,然后存儲到數(shù)據(jù)庫中。Scrapy也不是Python內(nèi)置的,需要通過pip install scrapy安裝。




5. MySQL服務(wù)器。數(shù)據(jù)爬取下來后,要存儲起來,以后才能通過網(wǎng)頁的形式展現(xiàn)出來。存儲數(shù)據(jù)的方式有很多,比如可以存儲到JSON文件中、MySQL數(shù)據(jù)庫中、SQLite數(shù)據(jù)庫等。而MySQL由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,已經(jīng)被廣泛的應(yīng)用在了大中小型網(wǎng)站中。我們的數(shù)據(jù)從網(wǎng)站上爬取下來后,以后還需要用在網(wǎng)站中展示。因此我們采用MySQL來存儲數(shù)據(jù)。MySQL安裝非常簡單,可以到MySQL官網(wǎng)下載安裝即可:
https://dev.mysql.com/downloads/windows/installer/5.7.html。




6. Django框架。Django框架是Python web開發(fā)中一款非常主流的框架。上手快,功能齊全,可以勝任大型網(wǎng)站的任務(wù)。他也是集HTTP協(xié)議、URL匹配、數(shù)據(jù)庫管理、HTML模版渲染等于一體的框架。數(shù)據(jù)已經(jīng)從爬到數(shù)據(jù)庫中了,下一步我們就是使用Django框架實現(xiàn)一個網(wǎng)站,動態(tài)的加載數(shù)據(jù)!根據(jù)自己的需求,想做成什么樣就做成什么樣!Django也是第三方的,需要通過pip install django進(jìn)行安裝。




二、項目架構(gòu):

在寫具體的代碼之前,先來理順一下整個項目框架的結(jié)構(gòu)。爬蟲負(fù)責(zé)抓取網(wǎng)站的數(shù)據(jù),并對抓取下來的數(shù)據(jù)進(jìn)行解析和清洗,然后存儲到數(shù)據(jù)庫中。之后Django再從數(shù)據(jù)庫中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)顯示在網(wǎng)頁中。結(jié)構(gòu)圖如下:







三、爬蟲實現(xiàn):

俗話說,巧婦難為無米之炊,再牛逼的爬蟲程序如果沒有好的數(shù)據(jù)來源,也爬不到有價值的數(shù)據(jù)。因此選擇一個好的資源網(wǎng)站至關(guān)重要。這里我們選擇的是電影天堂和陽光電影兩個特別良心的網(wǎng)站。這兩個網(wǎng)站上有大量的高清視頻資源,每部電影都配有詳細(xì)的信息,包括演員,導(dǎo)演,年代,類型,豆瓣評分,視頻截圖等,最重要的是附有迅雷下載鏈接,可以說是非常良心了。但是這個網(wǎng)站經(jīng)常會有一些廣告(廣告是主要的主要的收入來源),當(dāng)你在點擊某個鏈接的時候,會首先給你彈出一個新頁面,里面嵌入的就是廣告資源,然后你再次點擊,才能進(jìn)入到下一個頁面。并且有時候這個網(wǎng)站還會被Chrome瀏覽器識別為病毒網(wǎng)站(不知是否真的有病毒),導(dǎo)致無法正常訪問。另外最后一個就是,這個網(wǎng)站的界面相當(dāng)不美觀,對于我這種審美要求高的(特別是美女(*^_^*))碼農(nóng)來說,實在不能忍受。因此如果我們能把上面的電影資源都爬下來,再按照自己的需求實現(xiàn)一個網(wǎng)站,顯示這些信息,那就很有意思了。無論從個人角度還是商業(yè)角度來說,都是非常有價值的!這里我們使用的是Scrapy框架來實現(xiàn)的,那么以下主要從數(shù)據(jù)抓取,數(shù)據(jù)解析和數(shù)據(jù)存儲三個角度來進(jìn)行分析:




1. 數(shù)據(jù)抓取和解析:在寫代碼之前,我們首先來分析下電影天堂這個網(wǎng)站,他的首頁是包含了各種類型資源的一個組合。我們現(xiàn)在要爬取的是電影信息,因此點擊“更多最新電影”跳轉(zhuǎn)到最新電影的列表頁面,如下圖:







可以看到這個列表頁包含了許多我們想要的電影資源,但是我們現(xiàn)在爬,只能爬取到這一頁的電影信息,怎么能把其他頁面的電影也爬下來呢,這時候就要找到每個頁面的url規(guī)則了。我們可以看到,第一頁電影的URL是:http://www.dytt8.net/html/gndy/dyzz/list_23_1.html,第二頁電影的URL是:http://www.dytt8.net/html/gndy/dyzz/list_23_2.html。所以我們得出一個結(jié)論就是,URL的前面部分都是一樣的,最后那個數(shù)字是幾,代表的是第幾頁。接下來就是去爬詳情頁面了。詳情頁的例圖如下:







包括電影的信息、海報,都能在這個里面找到。那么數(shù)據(jù)爬取的代碼如下:

























2.數(shù)據(jù)存儲:這里我們把爬取下來的數(shù)據(jù)存儲到MySQL數(shù)據(jù)庫中。需要在pipeline中進(jìn)行實現(xiàn)。示例代碼如下:







以上便是爬蟲部分的講解和示例代碼演示,當(dāng)然因為篇幅限制,無法把所有細(xì)節(jié)都介紹到位,如果您對這個項目還有不懂的地方,我們在2月24日在網(wǎng)易云課堂會有直播,從零開始開始講解,如何分析頁面,如何提取元素,scrapy框架是如何運行的等。有什么不懂的還可以和老師進(jìn)行互動,相信你一定可以學(xué)會的!




四、網(wǎng)站實現(xiàn):

網(wǎng)站這里我們用的是Flask框架。在后臺做好數(shù)據(jù)的提取,在前端做好頁面的顯示。示例代碼如下:







做完后的效果圖如下(只是簡簡單單的做了個demo,UI還需要進(jìn)一步美化):







五、總結(jié):

這個項目可以說是用到了Python大部分的技術(shù)要點。有Python網(wǎng)絡(luò)爬蟲、Scrapy框架、Python web開發(fā)、Flask框架等。內(nèi)容比較豐富,知識點太多。無法通過一篇簡單的文章把所有技術(shù)細(xì)節(jié)都介紹到位。如果您對這個項目感興趣,并且想要進(jìn)一步學(xué)習(xí),可以在2月24日晚8點,知了課堂和網(wǎng)易云課堂聯(lián)合舉辦了一場免費的直播盛宴,我將從零開始,為您講述這個項目背后的一切技術(shù)要點,您將獲得以下收益:

1. Python實戰(zhàn)體驗;

2. 網(wǎng)絡(luò)爬蟲實戰(zhàn)技巧;

3. 數(shù)據(jù)解析技術(shù)要點;

4. Python web開發(fā)技術(shù)流程;

5. Flask、Django框架的使用;

6. 數(shù)據(jù)爬下來,如何產(chǎn)生價值;

7. 用爬蟲和Flask/Django技術(shù)實現(xiàn)自己的電影網(wǎng)站;

關(guān)鍵詞:電影,完整,教程,爬蟲,打造

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉