爬蟲6 x Scrapy 自由時報新聞實戰2

YM Chiu
3 min readJul 14, 2019

--

透過Scrapy進行新聞資料爬取

爬蟲 x 自由時報爬蟲實戰
爬蟲2 x 自由時報網站結構分析
爬蟲3 x XPath 工具介紹
爬蟲4 x Scrapy 框架介紹及實作
爬蟲5 x Scrapy 自由時報新聞實戰

透過第五集的程式,我們取得了新聞正文的網址
https://news.ltn.com.tw/news/politics/breakingnews/2842064

下方的code是目前第五章撰寫到的程度,接下來就是這次爬蟲最重要的部分,透過XPath取得新聞標題、時間和內文

目前爬蟲Parse的程式碼

如圖1所示,我們透過之前三四章累積的經驗及分析網站結構後使用XPath取得整個新聞區塊

//div[contains(@class, “articlebody”)]

圖1. 主新聞區塊的XPath

取得新聞標題

//div[contains(@class, “articlebody”)]//h1/text()

圖2. 取得新聞標題

取得新聞發布時間

//div[contains(@class, “articlebody”)]//span[contains(@class, “viewtime”)]

圖3. 取得新聞發布時間

取得新聞正文內容

//div[contains(@class, “articlebody”)]//div[contains(@class, “text”)]//p

圖4. 新聞內容 (右下角讚)

透過以上的XPath,我們將新聞內容解析的實作單獨抽成一個function

新聞內容解析實作

這時候在回顧一下我們第五章Parse的程式

目前爬蟲Parse的程式碼

我們已經知道href是新聞正文的連結,因此我們可以透過 response.follow將href傳入並且指定由parse_content這個function來處理這個URL的解析

改寫後的Parse程式碼
完整程式碼
實際執行結果

完整程式碼及啟動指令都放在我的Github上 ltn-news-scrapy

--

--

YM Chiu

Software Engineer, 難道我是因為喜歡錢,才在金融業嗎