前幾天做了一個爬取豆瓣Top250電影的爬蟲,在爬取了豆瓣Top250的電影后,想試一試根據電影類別爬取所有的豆瓣電影,基本的原理是想通的。代碼採用Python,摳取頁面內容採用Beautiful Soup。
1.豆瓣電影分析
以豆瓣愛情類型電影爲例,在瀏覽區中輸入http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie?start=0後顯示的內容如下圖所示:
可以看到每個電影以列表顯示展現,每頁顯示15條電影信息。每一條的電影信息包括電影名稱、國家或地區、電影類型、導演、主演,如果需要查看詳細的電影信息需要每個電影的詳情頁面。
2.獲取豆瓣電影類別
要根據電影類型爬取電影需要先獲取所有的電影類別。
在Chrome瀏覽器中通過F12分析頁面內容,可以看到類別是處於id爲'article'的div標籤中。
獲取每一條類別名稱,並存放於List中。
3.根據電影類別爬取電影列表
在獲取了所有的類別標籤後,依次遍歷每一個類別標籤,根據類別名稱獲取此類別的電影。查看類別電影列表的源碼特點
所有的電影列表處於<div class="mod movie-list">之中,每一個電影在dl中。採用Beautiful Soup獲取電影列表,然後分析每一個電影信息,獲取電影詳情頁面的URL,下面代碼中的detail_url即爲電影詳情頁面的URL
獲取到URL之後,再次爬取單個電影頁面,獲取電影的電影名稱、導演、編劇、主演、類型、製品國家或地區、語言、上映時間、片長、豆瓣評分、劇情簡介信息。
獲取豆瓣評分及劇情介紹代碼:
4.將電影信息插入到數據庫中
在處理中每爬取一頁內容即把數據存放於數據庫中。
爬取的電影信息總共有26302條