最近看到一個 UP 主作的視頻,使用可視化動態圖,把目前播放量最多的 UP 主一一列出來,結果第一名是嗶哩嗶哩番劇,第一名的播放量是第二名近 10 倍。正則表達式
B站的番劇數量,也是相對其餘平臺比較多的,並且質量都還不錯。說實話,剛開始用嗶哩嗶哩的時候,就是爲了看番劇。做爲一個喜歡看番劇的 pk 哥,我決定用爬蟲爬取一下日本動漫電影 TOP100 都有哪些?網上看了一下,時光網正好有這個排行榜,並且信息相對來講比較全。編碼
因此我決定用爬蟲把這個榜單上 Top100 的全部電影信息所有保存爲 csv 文件放在本地,看有沒有以前我遺漏的經典動漫電影。3d
如下是保存的效果。保存的列包括電影名稱、導演編劇、發行公司、更多片名、評分、首日票房、總票房。有些電影沒有評分和票房信息的就直接顯示爲空。調試
本次爬蟲項目主要分爲三個部分。第一部分咱們要獲取電影的 Id信息,由於咱們須要保存的全部信息,都和這個有關。Id從哪裏獲取呢?咱們打開這個榜單頁面的源代碼。源代碼中咱們能夠看到,id都在連接後面。視頻
爲了縮小範圍,咱們發現這些連接都在 class=top_nlist 裏面,咱們用 beautifulsoup 庫提取屬性 class= top_nlist 全部的元素。而後用正則表達式,提取出每頁的 id信息。blog
這裏第 1 個頁面須要特殊處理一下,由於第 2 個頁面到第 10 個頁面後面都是直接帶的數字,第 1 個頁面直接我在後面加 -1 的話會報 404,因此這個頁面單獨拿出來提取頁面信息。而後再把 ID 信息所有加到空列表裏面。utf-8
ID 信息獲取了,接下來咱們經過 ID 信息來獲取電影的評分和票房信息。經過 F12 調試咱們能夠看到。評分和票房信息在 js 裏面。beautifulsoup
請求連接裏變化的就是電影的 ID ,其餘的保持不變就好。class
咱們對返回信息經過簡單的處理轉換爲 Json 格式。以後咱們就能夠直接經過 key 值提取 value 值了。這裏主要提取的信息有:評分、首日票房和總票房。後臺
接下來咱們須要經過 ID 信息獲取對應電影的名稱和導演編劇等詳細信息。這些信息在源代碼中,能夠直接經過正則表達式來提取。
用正則表達式提取信息的前提是咱們要找到信息的規律。這樣經過正則表達式提取就又快又準。
提取了這些信息以後,咱們把它保存在 list 列表中,這樣作的目的是爲了後面咱們保存爲 csv 文件作準備。
每頁的信息獲取了以後,咱們就能夠把這些信息追加保存到 csv 文件中。每保存一部電影信息,保存下一部電影信息就進行追加保存。爲了不保存後的 csv 文件打開出現亂碼,咱們須要將編碼形式設置爲 encoding='utf-8' 格式。
經過這三步,這個 Top100 排行榜中的全部動漫電影信息都所有保存在本地的 csv 文件中啊。那咱們就能夠更方便的瀏覽這些電影信息。這樣咱們就能夠更好的追番了。本文全部的代碼信息可在公衆號「Python知識圈」後臺回覆「動漫電影」獲取。