撿了鼠標開網吧系列——nodejs爬取電影連接

前言

最近在看新出的電視劇「鬥破蒼穹」,但是一集電視劇的廣告開頭90s中間45s片尾15s,實在使人髮指。以前有了解過,網上有不少免vip解析接口,因而本渣決定動手作一個能夠去除廣告的小網站,因而有一下采坑過程。html

採坑之路

首先,這是最終在線預覽。文章核心是爬取電影連接,而後和現有的會員解析接口拼接展現。前端

1.第一版

視頻解析接口+電影連接=無廣告電影。 node

通過測試,預期功能實現。emmm,鼠標撿到了。但是每次都要找電影連接才能觀看是有點煩啊,能不能經過搜索關鍵字直接播放呢? 做爲一個前端弱雞,本能反應=》找接口。

2.找接口

找了半小時終於在聚合數據上找到符合條件的接口,影片連接還有上映信息均可以拿到,簡直不要太舒服。使用過程發現聚合數據的接口數據並不完整,好多新上映的電影都沒有返回數據,並且還有調用次數限制,此方案終結。jquery

3.nodejs爬蟲

有兩種思路:1.爬取各大視頻網站全部視頻連接並存入數據庫,用戶搜索時去數據庫查找電影。 2.獲取到前端搜索關鍵字後,去視頻網站爬取,而後返回給前端。第一種方式數據量比較大,要考慮到網站的反爬措施,好要寫腳本定時爬取以保持能夠獲取視頻網站最新數據。第二種方法在線爬取,會有必定的延時,通過測試延時時長在1s左右,所以決定採用第二種方式。 經過對視頻網站分析發現,每一個視頻網站都有全網搜索接口,本次爬取企鵝視頻,上代碼。git

其中$就是抓取到的html內容,以下圖。
經過標籤獲取數據輕鬆拿到電影名、海報等信息,可是播放連接這裏出現了一點問題:若是是電視劇會出現這個狀況。
由於電視劇集數比較多,因此中間會用‘...’省略,這時候爬蟲獲取的播放連接就不完整。打開network,點擊‘...’省略的集數加載了出來,於此同時
能夠看到,咱們想要的信息全在這個接口裏。因而咱們在上一個接口採集連接時作一個判斷,若是當前連接value爲'...'就調用這個接口,這裏要注意作異步處理,否則採集不完整。

4.前端展現

這裏沒多少技術棧,可是由於前先後後需求一直改變,從最開始原生js到jquery,最後甚至想上框架~~!。算了很少數,這裏是github地址github

5.總結

其實nodejs作爬蟲坑仍是蠻多的,爬取電影鏈接時,電影、電視劇、綜藝、續集等都有不一樣的html結構,因此用標籤爬取數據真的不是一個好的思路。並且在獲取電視劇‘...’連接這一塊也比較坑,由於不會nodejs斷點調試,很簡單的問題一直沒法定位。 第一次寫文章,思路、格式都不太好,見諒。下班,嘿嘿,溜了。數據庫

相關文章
相關標籤/搜索