還在人工爬資料?不用定期敲爬蟲,也能【自動化】訊息爬取的秘訣(內附Python程式碼)
企業外部環境搜索現況
隨著資訊技術的進步,企業所面對的環境已經迅速改變。各個競爭對手都不斷的出招搶攻媒體版面,因而可掌控市場的動態就變成重要的關鍵。我們輔導的企業中,多數都還是以人工的方式進行搜索,且許多企業每天必須花費至少1/3的上班時間蒐集外部環境的相關資訊。
所以讓企業本身必須要使用資料科學相關技術,快速調整公司策略。
為何不使用人工蒐集資訊就好?
如今用傳統的「人工」搜尋法,早已不可行,主要原因包括:
- 面對資訊多元的媒體與訊息管理,亦有人力成本高漲等問題,若真要找一批人來整理或轉化資料,其所需的人力、物力將是一筆鉅額開銷。假設這群人每天花1/3的時間搜尋外部資訊,等於1/3的公司薪資要花費在這重複性極高的工作上
- 又或即使要蒐羅的資料量不多,但由於非即時性的人工作業及其過程耗時,等結果分析出來,可能早已過了時效
所以,為何不用「機器」為您代勞呢?
如果企業想要抓取競爭對手或者政府新聞,以獲取最新動態協助決策,只要上網搜尋「Python 新聞抓取」,一定會查詢到許多網頁爬蟲的文章。 但是事實上網頁爬蟲,對於Python 新手其實是不好入門的。光把Python 學好就已經花費許多的力氣,更不用說還要面對 HTML 、CSS 與javascript這些網頁常用的程式語言了。一打開網頁原始碼(圖1)就馬上昏頭,更不用說去理解要怎麼抓取了。
RSS服務
值得慶幸的是,現在許多新聞網站都有提供RSS 的服務,讓我們可以透過RSS 服務來訂閱最新的新聞摘要與連結。根據維基百科介紹,RSS 是一種訊息來源格式規範,一般於常發布更新資料的網站,例如部落格文章、新聞、音訊或視訊網站。RSS檔案包含全文或是節錄的文字,再加上發布者所訂閱之網摘資料和授權的元資料。通常 RSS會使用 RSS閱讀器來讀取,讓使用者可以輕易訂閱自己想要的頻道。而我們則可以利用RSS服務來幫助我們完成新聞訊息的抓取。
RSS服務Python實做
一、 安裝
我們可以透過Python的套件包:「feedparser 」 。讓我們可以輕易的透過Python解析 RSS。
Windows 安裝,開啟Command Line:
pip install feedparser
Ubuntu安裝,開啟Terminal:
sudo pip install feedparser
二、抓取訊息來源
我們以中央社的RSS 為範例,連到中社的RSS 網站。選擇任合一個RSS 圖示,並複製訊息來源連結,後續會做來源使用。
三、撰寫程式
- 先引入feedparser 套件
import feedparser
2. 將剛剛的連結貼上存到變數中,並透過feedparser 執行抓取資料。
rss_url = 'http://feeds.feedburner.com/cnaFirstNews'
# 抓取資料
rss = feedparser.parse(rss_url)
3. 取出新聞標題與新聞連結。
# 抓取第一個文章標題
print(rss['entries'][0]['title'])# 抓取第一個文章標題
print(rss.entries[0]['link'])# 抓取第一個文章摘要
print(rss.entries[0]['summary'])
感覺還是好複雜嗎? 使用預警機器人協助解決爬文問題!
為了避免每天面對這複雜的程式碼,於是我們做了一個自動化的「預警機器人」,輔導的公司留意重要消息,節省公司那1/3的時間及薪資成本的浪費,因此員工即可專心將產能發會到更有意義的事務上,同時也不怕漏接訊息!
我們做出來,不同產業使用了一段時間之後,金融業、證券業、電商業的合作夥伴及朋友紛紛詢問:「能否關注競爭者話題? 競爭對手抓取? 股票資訊抓取? 」
對我們而言,僅做微調即可,令我驚訝的是,這個小工具竟能達到這種效果!更意外的是,居然有合作廠商看到後,也希望我們公司為他們訂做!
陸陸續續,發現很多人都有同樣需求,於是我希望藉由開課,將這個工具的做法從0到1,傳授給需要的朋友。
經過我們漫長的整理,盡可能地將這些程式碼改得簡潔易懂,也把從觀察網頁、爬蟲設計,到串連Line等程序盡力簡化,以確保即使沒有學過Python的人也能快速做出成果,大大縮減從無到有的時間成本與精力。
此外,因為是根據顧客實際專案成果整理出的課程,學習成果保證達到業界水準,更詳細的內容,可以點下面連結了解:
作者:
鍾皓軒(臺灣行銷研究有限公司 共同創辦人)
林建興(臺灣行銷研究技術長)
附贈完整程式碼
點此線上執行程式碼
作者:羅凱揚(台科大企管系博士)、蘇宇暉(台科大管研所博士候選人)