Python一鍵獲取日漫Top100榜單電影信息

来源:https://www.cnblogs.com/pythoncircle/archive/2020/05/25/12961048.html
-Advertisement-
Play Games

最近看到一個 UP 主做的視頻,使用可視化動態圖,把目前播放量最多的 UP 主一一列出來,結果第一名是嗶哩嗶哩番劇,第一名的播放量是第二名近 10 倍。 B站的番劇數量,也是相對其他平臺比較多的,而且質量都還不錯。說實話,剛開始用嗶哩嗶哩的時候,就是為了看番劇。作為一個喜歡看番劇的 pk 哥,我決定 ...


最近看到一個 UP 主做的視頻,使用可視化動態圖,把目前播放量最多的 UP 主一一列出來,結果第一名是嗶哩嗶哩番劇,第一名的播放量是第二名近 10 倍。

B站的番劇數量,也是相對其他平臺比較多的,而且質量都還不錯。說實話,剛開始用嗶哩嗶哩的時候,就是為了看番劇。作為一個喜歡看番劇的 pk 哥,我決定用爬蟲爬取一下日本動漫電影 TOP100 都有哪些?網上看了一下,時光網正好有這個排行榜,而且信息相對來說比較全。

所以我決定用爬蟲把這個榜單上 Top100 的所有電影信息全部保存為 csv 文件放在本地,看有沒有之前我遺漏的經典動漫電影。

以下是保存的效果。保存的列包括電影名稱、導演編劇、發行公司、更多片名、評分、首日票房、總票房。有些電影沒有評分和票房信息的就直接顯示為空。

獲取電影ID信息

本次爬蟲項目主要分為三個部分。第一部分我們要獲取電影的 Id信息,因為我們需要保存的所有信息,都和這個有關。Id從哪裡獲取呢?我們打開這個榜單頁面的源代碼。源代碼中我們可以看到,id都在鏈接後面。

為了縮小範圍,我們發現這些鏈接都在 class=top_nlist 裡面,我們用 beautifulsoup 庫提取屬性 class= top_nlist 所有的元素。然後用正則表達式,提取出每頁的 id信息。

這裡第 1 個頁面需要特殊處理一下,因為第 2 個頁面到第 10 個頁面後面都是直接帶的數字,第 1 個頁面直接我在後面加 -1 的話會報 404,所以這個頁面單獨拿出來提取頁面信息。然後再把 ID 信息全部加到空列表裡面。

提取評分和票房信息

ID 信息獲取了,接下來我們通過 ID 信息來獲取電影的評分和票房信息。通過 F12 調試我們可以看到。評分和票房信息在 js 裡面。

請求鏈接里變化的就是電影的 ID ,其他的保持不變就好。

我們對返回信息通過簡單的處理轉換為 Json 格式。之後我們就可以直接通過 key 值提取 value 值了。這裡主要提取的信息有:評分、首日票房和總票房。

提取其他電影詳細信息

接下來我們需要通過 ID 信息獲取對應電影的名稱和導演編劇等詳細信息。這些信息在源代碼中,可以直接通過正則表達式來提取。

用正則表達式提取信息的前提是我們要找到信息的規律。這樣通過正則表達式提取就又快又準。

提取了這些信息之後,我們把它保存在 list 列表中,這樣做的目的是為了後面我們保存為 csv 文件做準備。

保存為csv文件

每頁的信息獲取了之後,我們就可以把這些信息追加保存到 csv 文件中。每保存一部電影信息,保存下一部電影信息就進行追加保存。為了避免保存後的 csv 文件打開出現亂碼,我們需要將編碼形式設置為 encoding='utf-8' 格式。

通過這三步,這個 Top100 排行榜中的所有動漫電影信息都全部保存在本地的 csv 文件中啊。那我們就可以更方便的瀏覽這些電影信息。這樣我們就可以更好的追番了。本文所有的代碼信息可在公眾號「Python知識圈」後臺回覆「動漫電影」獲取。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們在使用Spring框架中,特別是框架級的功能,經常看到有@Import導入功能, ​ 我就介紹下它能導入什麼,首先聲明下@Import是註解,導入類型可分為三類: 1. 導入配置 @Configuration,類似於spring早期版本2.5的import xml文件一樣, <?xml vers ...
  • 一、不同環境下的C 1.一個源程式inform.c編譯生成a.out,然後可以直接運行這個可執行程式,如果要存儲這個可執行文件,應該把它重命名,否則,就會被下一次編譯程式時生成的新a.out所替換。 2.如何處理目標代碼,C編譯器會創建一個inform.o,然而卻找不到這個文件,因為一旦鏈接器生成了 ...
  • @ 一、類的載入概述 載入 就是指將class文件讀入記憶體,併為之創建一個Class對象 任何類被使用時系統都會建立一個Class對象 連接 驗證:是否有正確的內部結構,並和其他類協調一致 準備:負責為類的靜態成員分配記憶體,並設置預設初始化值 解析:將類的二進位數據中的符號引用替換為直接引用 初始化 ...
  • cola擴展點使用和設計初探 封裝變化,可靈活應對程式的需求變化。 擴展點使用 步驟: 定義擴展點介面,類型可以是校驗器,轉換器,實體; 必須以ExtPt結尾,表示一個擴展點。 比如,我定義一個雲樞的組織結構的擴展點介面,消息發送擴展點,二開擴展點,webapi的rest介面擴展點點。 定義擴展點接 ...
  • 6.字典 字典的主要特性如下所示: 1.字典是使用大括弧進行定義 2.字典中的元素是鍵值對的形式出現,每個鍵值對之間使用冒號進行分隔,每個元素間使用逗號進行分隔 3.字典中鍵必須為不可更改的數據類型,如整型數據、浮點數據、布爾型、字元型、元組等,但不能列表和變數 6.1 基本使用 1.添加 直接給對 ...
  • 5.列表 列表是實際應用非常多的一種數據類型,需要好好掌握。列表的主要特性如下所示: 1.支持增加、修改和刪除元素操作 2.列表的長度是可變的 3.列表支持排序 5.1 索引與切片 列表中索引是從0開始,且支持正向和反向兩種索引方式。如下所示: a=[1,2,"abc",[4,5,6],{"a":7 ...
  • 最近在讀秦小波的《設計模式之禪》。本文又是一篇長達2000行的又水又長的筆記,記錄書中所講23個設計模式中的22個,基本上是將書中講的各個設計模式的定義、優點、缺點、適用場景、demo抄下來了。推薦去閱讀原書,這是一位學識豐富且有一個有趣的靈魂的作者所寫,原書中每個設計模式的講解都有一個十分有趣的例 ...
  • python序列之集合 1.概念 集合是一組無序不可重覆元素組成,用{}表示,在集合中元素是唯一的並且集合中只能包括數字,字元串和元組等不可變元素。 2.創建 創建集合可有set()或者{}創建。 3.集合中增加元素的方法為add()方法 4.集合刪除 pop()方法刪除集合中某一個元素。 remo ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...