自學python爬蟲(四)Requests+正則表示式爬取貓眼電影
阿新 • • 發佈:2018-11-06
前言
學了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獲取