[指南] Google Finance 没有台股兴柜资料?Google Sheet 试算表中的 ImportXML 妙用

章节连结

近期想使用 Google Finance 来自动抓取美股和台股资料的时候,发现缺乏台股兴柜股价的资料。虽说 Google 试算表中的 IMPORTHTML 可以方便的爬取资料,不过仅限于 <table> 和 <ol><ul> 标签,而许多有提供股价资讯的网站,并不一定会使用这两类标签来呈现。这时 IMPORTXML 就可以派上用场。
spreadsheet


原理

IMPORTHTML 和 IMPORTXML 都是利用爬虫的原理,来抓取网站的资料。相较于前者,XML 格式提供给程式一套结构化语法,让其去辨识的该网页的内容。Google Sheet 所提供的 IMPORTXML 能够适用的场景更多。

语法

IMPORTXML(“<第一个参数>”, “<第二个参数>”)

第一个参数:你的目标解析网址 (必填)
第二个参数:XPATH 结构,也就是告知爬虫要抓取哪个区块的资料


使用方法

情境:若我今天要抓取钜亨网上的长荣海运(2603)的资料,那么就在 Google Sheet 的表格中输入:
=IMPORTXML(“https://invest.cnyes.com/twstock/tws/6689″,”//*[@id=’_profile-TWG:2603:STOCK’]/div[1]/div[3]/div[1]/div/span”)
Google Finance,google sheet,爬虫,股票价格,兴柜

如何取得 XPATH

难题会出现在:我如何知道 XPATH 资料?仅需使用浏览器的开发人员工具,并用选取工具取得网页上的元素,按下鼠标右键来取得即可。
1. 进入目标网页,并点选鼠标右键,找到开发人员工具 (如图中的 Inspect,中文版翻译的话可能为检查)
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo52. 点选左上角的选取工具,选取画面中的股价位置
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo4

how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo3
3. 工具会带你到该 HTML 标签的元素位置,在位置点选鼠标右键Google Finance,google sheet,爬虫,股票价格,兴柜

4. 选单内的复制选项内,会有一项为复制 XPATH,点选它
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo15. 回到 Google Sheet 中,在 IMPORTXML 语法内输入网址和贴上刚才复制的 XPATH 就完成了

日后,只要在网页结构没有变化的情况下,都可以用相同的格式来抓取资料。

按赞加入粉丝团

延伸阅读