1. 程式人生 > >自學python爬蟲(四)Requests+正則表示式爬取貓眼電影

自學python爬蟲(四)Requests+正則表示式爬取貓眼電影

前言
學了requests庫和正則表示式之後我們可以做個簡單的專案來練練手咯!先附上專案GitHub地址,歡迎star和fork,也可以pull request哦~
地址:https://github.com/zhangyanwei233/Maoyan100.git
正文開始哈哈哈


第一步、對目標站點分析

目標站點:http://maoyan.com/board/4
這裡寫圖片描述
這裡寫圖片描述
我們可以看到,網頁每個介面展示10部電影,一共10頁,注意!!!網頁往下跳轉時url的特點:
第一頁:http://maoyan.com/board/4
第二頁:http://maoyan.com/board/4?offset=10


第三頁:http://maoyan.com/board/4?offset=20
……
我們不妨先來爬取第一頁的資料,因為其他的都是類似的。
滑鼠右鍵,審查元素檢視網頁原始碼:
這裡寫圖片描述
我們發現,每部電影的資訊都在< d d>標籤內,我們要爬取的資料資訊有排名、連結、電影名、主演、上映時間、評分。


我們分析之後就要開始幹活啦!

抓取網頁內容

利用requests請求目標站點,得到單個網頁HTML程式碼,返回結果。

正則表示式分析

根據HTML程式碼分析得到電影的名稱、主演、上映時間、評分、圖片連結等資訊。

儲存至檔案

通過檔案的形式將結果儲存,每一部電影一個結果一行json字串。

開啟迴圈和多執行緒

對多頁內容遍歷,開啟多執行緒快速抓取。

# 正則表示式
   pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)"'
                         '.*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">'
                         '(.*?)</p>.*?integer">(.*?)</i>
.*?fraction">(.*?)</i>.*?</dd>', re.S)

專案原始碼請到GitHub獲取