懶的更新到blogger了

本站2010年10月以後的,都更新到google docs上了:
連結在這裡

2007/09/07

Google Spreadsheets 抓外部資料的函數

其實是參考Google自家的線上help就很清楚了,
http://docs.google.com/support/spreadsheets/bin/answer.py?answer=75507&hl=en
但還是自己的話打一次,方便自己以後參考。

抓外部資料當然就是抓網路上可以「直接存取」到的資料,
格式可以是 xml,html,csv,tsv,rss。

功能如下:
語法:=importXML("URL","query")
說明:URL可以是 html或是xml文件,query是想要查詢的XPath語法。
例:=importXml("www.google.com", "//a/@href"),將會把www.google.com裡面所有<a>標籤的所有href都列出來。

語法:=importData("URL")
說明:URL是一個逗點隔開的檔案(csv),或tab隔開的檔案(tsv)。

語法:=importHtml("URL", "list" | "table", index)
說明:把該「URL」裡面的第「index」個「list或table」抓進來。其中list包含 <ol>,<ul><dl>。table當然就是<table>標籤。
例:=ImportHtml("http://en.wikipedia.org/wiki/Demographics_of_India", "table",4)


語法:=GoogleReader("URL", [feedQuery | itemQuery], [headers], [numItems])
說明:就把該URL的feed資料抓進來(必須是googlereader可以判讀的資料)
例:=GoogleReader("http://news.google.com/?output=atom")

16 則留言:

Y.H.Lin 提到...

自己補充:
今天試著插入rss feed進去,
每次進入編輯該spreadsheet時,會抓到新的資料,
但如果「發佈」成網頁時,
資料似乎是「發佈當時」固定的資料,重新整理也不會更新。

Unknown 提到...

抓取http://tw.stock.yahoo.com/d/s/dividend_3030.html的股利資料要如何設定呢?

Unknown 提到...

抓取http://tw.stock.yahoo.com/d/s/dividend_3030.html的股利資料要如何設定呢?

Y.H.Lin 提到...

我試著用您提供的網址,設定table,第13個:
=importhtml("http://tw.stock.yahoo.com/d/s/dividend_3030.html","table",13)
可以抓到資料。
(我檢視原始碼沒看到那麼多表格,可能連廣告的表格都算吧 ^^ )
這代表應該不會永在 13 的位置。

不過抓下來的標題列是亂碼,猜測是big-5的關係。

Unknown 提到...

謝謝指導,相關設定有無網址可以自修?

Unknown 提到...

我想請教,"table",13這個意義是什麼?

Y.H.Lin 提到...

我其實也是參考Google自加的線上文件而已
https://support.google.com/drive/answer/3093339
那個 table 13 的意思,就是抓該網頁的第13個表格,
如果您有寫過HTML網頁,就知道 table 標籤可以產生網頁裡的表格,
所以table,13就是抓出該網頁第13個表格的資料。

Unknown 提到...
作者已經移除這則留言。
Unknown 提到...

請問A1輸入代號(如2103),抓取http://www.twse.com.tw/ch/trading/exchange/FMNPTK/genpage/Report201402/2103_F3_1_11.php?STK_NO=2103&myear=2014&mmon=02的資料要如何設定呢?

Y.H.Lin 提到...

這應該不是抓外部資料的問題,是試算表文字組合的問題 ^^
依您提供的資料來看,是A1輸入代號,然後網址裡對應代號的部分跟著改變,再抓對應的外部資料。

我會這麼做:
A1 直接輸入代號「2103」

B1 把網址組合起來(就是把剛的2103用 A1 取代)
「="http://www.twse.com.tw/ch/trading/exchange/FMNPTK/genpage/Report201402/"&A1&"_F3_1_11.php?STK_NO="&A1&"&myear=2014&mmon=02"」

C1 匯入資料
「=importhtml(A2,"table",8)」

Y.H.Lin 提到...

打錯字
前面開頭的 A1 B1 C1 應該是 A1 A2 A3 。

Unknown 提到...
作者已經移除這則留言。
Unknown 提到...
作者已經移除這則留言。
Unknown 提到...

謝謝你的指導。

Unknown 提到...

請教=ImportHtml("http://jsjustweb.jihsun.com.tw//z/zc/zcq/zcq_1102.asp.htm", "table",)匯入資料的日期,用什麼條件可以將102.Q3變更為Q32013?

jayshen 提到...

請問我想捉玩股網裡的上證資料,
開盤價,最高價,最低價都可以正常捉取,
但"日期"卻無法捉到,請問是哪裡有問題嗎 ?

=importxml("https://www.wantgoo.com/global/stockindex?stockno=SHI,"//*[@id='topBasic']/div[1]/time")