之前看大數學堂的教學影片學了爬蟲技巧還有spark,這回看到David老師要開課,當然要來參加講座呀,好在最後加開了三十個名額,讓我可以聽現場XD。這場workshop主要介紹怎麼下載與使用Rstudio,利用蘋果新聞網頁為例,練習怎麼爬取資料,並做簡單的分析。


老師的投影片與範例連結在此 https://github.com/ywchiu/rcrawler

總結今天教的軟體與工具

  • Rstudio:免費開源軟體,跨平台的R語言IDE
  • Google chrome 開發者工具:chrome的內建工具,可以看原始碼,layout方式,連線資訊等等
  • Info Lite:老師所做的chrome外掛,可以在瀏覽器上直接選擇所要的區塊並顯示標籤

雖然Google chrome 開發者工具也可以選擇元素,但我覺得Info lite在選擇抓取元素時更為方便,他以顏色來做表示。選起來的區塊會變綠色,相同屬性區塊是黃色,不要的區塊是紅色,選完後右上方就可以看到最後選擇的標籤名稱。以下是實際的截圖:

lite


練習範例

需要載入rvest套件

以下抓取首頁新聞,分為time,title,catagory,url儲存


library(rvest)
surl = "http://www.appledaily.com.tw/realtimenews/section/new/"
apple = read_html(surl,encoding="UTF-8")
apple %>% iconv(from = 'UTF-8', to = 'UTF-8')
rddt = apple %>% html_nodes('.rtddt')
time = rddt %>% html_nodes('time') %>% html_text()
title = rddt %>% html_nodes('h1') %>% html_text() %>% iconv(from = 'UTF-8', to = 'UTF-8')
category = rddt %>% html_nodes('h2') %>% html_text() %>% iconv(from = 'UTF-8', to = 'UTF-8')
domain = "http://www.appledaily.com.tw"
url = rddt %>% html_nodes('a') %>% html_attr('href')
url = paste0(domain, url)

news = data.frame(time=time, title=title, category=category, url=url)

data


抓取Facebook留言

很多網頁下方都會外掛Facebook的留言功能,但是他不好撈取,而且過度存取有可能會被ban掉,所以應善用Facebook Graph API來抓資料,並用Graph API Explorer來輔助學習。

Graph API Explorer

這部份由於時間關係沒有細講,之後有空再來研究