2016-09-14 133 views
0

所以我有一個谷歌表,我想通過ergast.com API導入F1資格和比賽結果。我只是從表格中獲得驅動程序和位置信息之後,但如果它更容易,則很樂意導入整個表格。我試過IMPORTHTML,IMPORTFEED,IMPORTXML,但無論我做什麼查詢,我似乎都無法生成任何數據(只是N/A)。如何導入XML表格Google表格

比賽1的API鏈接是:http://ergast.com/api/f1/2016/1/qualifying。網址位於單元格A1中。我試過=IMPORTHTML(A1,"list",0)也和表一樣,但沒有。

我已經嘗試了特定的xpaths = IMPORTXML,但似乎無法獲得任何數據顯示。

請有人可以幫助指點我在正確的方向來幫助導入這些數據?

非常感謝。

回答

0

要導入XML文件,我們可以使用IMPORTXML或IMPORTDATA。

對於使用IMPORTXML的情況,如果設置了xmlns,那麼在源文件中注意一點很重要。在稱爲源文件的第三行,

< MRDATA的xmlns = 「http://ergast.com/mrd/1.4」 系列= 「F1」 URL =「http://ergast.com/api/F1/2016/1 /排位」極限= 「30」 偏移= 「0」 總= 「22」 >

告訴我們,一個命名空間(參見xmlns屬性),因此,我們應該使用通配符或查詢名稱屬性的值。

作爲位置是命名驅動元素的屬性,在下面的例子中,數據是通過使用以IMPORTXML和檢索數組:


A1:http://ergast.com/api/f1/2016/1/qualifying
A2:驅動
A3 :

={ 
    IMPORTXML(A1,"//*[name()='"&A2&"']/../@position"), 
    IMPORTXML(A1,"//*[name()='"&A2&"']") 
} 

注:某些電子表格設置需要使用\代替,作爲列分隔符

結果

+----+--------+----+-----------+------------+------------+------------+ 
| | A | B |  C  |  D  |  E  |  F  | 
+----+--------+----+-----------+------------+------------+------------+ 
| 1 | http://ergast.com/api/f1/2016/1/qualifying  |   | 
| 2 | Driver | |   |   |   |   | 
| 3 | 1  | 44 | Lewis  | Hamilton | 1985-01-07 | British | 
| 4 | 2  | 6 | Nico  | Rosberg | 1985-06-27 | German  | 
| 5 | 3  | 5 | Sebastian | Vettel  | 1987-07-03 | German  | 
| 6 | 4  | 7 | Kimi  | Räikkönen | 1979-10-17 | Finnish | 
| 7 | 5  | 33 | Max  | Verstappen | 1997-09-30 | Dutch  | 
| 8 | 6  | 19 | Felipe | Massa  | 1981-04-25 | Brazilian | 
| 9 | 7  | 55 | Carlos | Sainz  | 1994-09-01 | Spanish | 
| 10 | 8  | 3 | Daniel | Ricciardo | 1989-07-01 | Australian | 
| 11 | 9  | 11 | Sergio | Pérez  | 1990-01-26 | Mexican | 
| 12 | 10  | 27 | Nico  | Hülkenberg | 1987-08-19 | German  | 
| 13 | 11  | 77 | Valtteri | Bottas  | 1989-08-29 | Finnish | 
| 14 | 12  | 14 | Fernando | Alonso  | 1981-07-29 | Spanish | 
| 15 | 13  | 22 | Jenson | Button  | 1980-01-19 | British | 
| 16 | 14  | 30 | Jolyon | Palmer  | 1991-01-20 | British | 
| 17 | 15  | 20 | Kevin  | Magnussen | 1992-10-05 | Danish  | 
| 18 | 16  | 9 | Marcus | Ericsson | 1990-09-02 | Swedish | 
| 19 | 17  | 12 | Felipe | Nasr  | 1992-08-21 | Brazilian | 
| 20 | 18  | 26 | Daniil | Kvyat  | 1994-04-26 | Russian | 
| 21 | 19  | 8 | Romain | Grosjean | 1986-04-17 | French  | 
| 22 | 20  | 21 | Esteban | Gutiérrez | 1991-08-05 | Mexican | 
| 23 | 21  | 88 | Rio  | Haryanto | 1993-01-20 | Indonesian | 
| 24 | 22  | 94 | Pascal | Wehrlein | 1994-10-18 | German  | 
+----+--------+----+-----------+------------+------------+------------+ 
+0

謝謝你這麼多的幫助:) – user1721451

+0

一個快速的問題,魯本。我需要的重要數據之一是汽車是否已經退役或者沒有開始(由API鏈接後的POS欄中的R或W指示)。我怎樣才能通過這個特定的數據? – user1721451

+0

我沒有在POS欄中找到R或W。 –