如何獲取資料:擷取網頁內容(上)

Python 使用 pyquery、R 語言使用 rvest

Yao-Jen Kuo
數聚點文摘
Published in
14 min readJun 2, 2018

--

The world’s most valuable resource is no longer oil, but data.
The Economist — May 6th, 2017

摘要

如何獲取資料:載入常見檔案格式一文中我們提過資料常見的來源包含三種:檔案、資料庫與網頁,該文簡介了如何將第一種來源中常見的檔案 CSV、TXT、Excel 試算表與 JSON 載入 Python 與 R 語言;而如何獲取資料:向資料庫查詢一文簡介從 Python 與 R 語言向第二種來源 SQL 或 NoSQL 雲端資料庫服務查詢;接著我們要討論第三種資料來源:網頁,從網頁擷取資料的方法另外一個更為眾人耳熟能詳的名稱即是爬蟲

本文簡介如何使用 Python 的 pyquery 模組與 R 語言的 rvest 套件擷取並解析網頁中的資料,並利用 Chrome 瀏覽器的外掛 Selector Gadget 與 XPath Helper 協助非網站工程師定位網頁資料的位址。

如何定位網頁資料

定位網頁中特定資料的位址,就像是在地圖上標記一般,我們需要景點或者建築物的位址,可以是詳細地址,亦或者是精準的經緯度。而在網頁中有非常多方法能夠表示出資料位址,常見的像是使用:

  • html 的標籤名稱
  • html 標籤中給予的 id
  • html 標籤中給予的 class
  • 資料所在的 CSS 選擇器(CSS Selector)
  • 資料所在的 XPath
在地圖上標記
定位網頁中特定資料的位址

考量多數資料科學愛好者皆不是網頁工程師背景,透過 Chrome 瀏覽器的外掛來取得資料所在的 CSS 選擇器或者 XPath 是快速入門的好方法,也是本篇文章推薦的做法;對於使用 HTML 標籤名稱、id 與 class…

--

--