希望将网站特定部分的选择性数据 'country-wise' 导入 Google 电子表格

Looking to import selective data 'country-wise' from specific part of website into Google Spreadsheets

我正在尝试将一些数据从 IATA 的网站导入到 Google Spreadsheet / Excel。我尝试使用 XCOPY 方法,但此页面不断更新,传播 sheet 最终会出现 'N/A' 错误。

我基本上想要一个 spreadsheet 来将特定国家/地区的数据导入我的 sheet 的单元格中。我正在寻找它是特定于国家/地区的。

比如我只想从这个网站导入COSTA-RICA的数据或者CANADA的数据到我的spread中sheet,

以下是点差sheet link 我正在编辑:https://docs.google.com/spreadsheets/d/1anrXXHuVtuP3iCDBsX8GcP7egDBmA75eeG4-wa1ov7E/edit#gid=1624254662

对于整个列表:

=INDEX(TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div/div/div/div/div/div/div/div")),,1)

加拿大使用:

=QUERY(QUERY(INDEX(TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div/div/div/div/div/div/div/div")),,1), "limit "&
 MATCH("CAYMAN ISL.", INDEX(TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div/div/div/div/div/div/div/div")),,1), 0)-
 MATCH("CANADA", INDEX(TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div/div/div/div/div/div/div/div")),,1), 0)&" offset "&
 MATCH("CANADA", INDEX(TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div/div/div/div/div/div/div/div")),,1), 0)-1, 0), "where Col1 is not null", 0)


哥斯达黎加变化:

  • CANADACOSTA RICA
  • CAYMAN ISL.COTE D'IVOIRE

更新:

完整列表:

=ARRAYFORMULA(QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div[@id='contentwrapper']//p[01]|//div[@id='contentwrapper']//p[02]|
  //div[@id='contentwrapper']//p[03]|//div[@id='contentwrapper']//p[04]|
  //div[@id='contentwrapper']//p[05]|//div[@id='contentwrapper']//p[06]|
  //div[@id='contentwrapper']//p[07]|//div[@id='contentwrapper']//p[08]|
  //div[@id='contentwrapper']//p[09]|//div[@id='contentwrapper']//p[10]|
  //div[@id='contentwrapper']//p[11]|//div[@id='contentwrapper']//p[12]|
  //div[@id='contentwrapper']//p[13]|//div[@id='contentwrapper']//p[14]"))
 ,,9^9)),,9^9), "♦"))), "where Col1 is not null", 0))

部分:

=ARRAYFORMULA(QUERY(
QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div[@id='contentwrapper']//p[01]|//div[@id='contentwrapper']//p[02]|
  //div[@id='contentwrapper']//p[03]|//div[@id='contentwrapper']//p[04]|
  //div[@id='contentwrapper']//p[05]|//div[@id='contentwrapper']//p[06]|
  //div[@id='contentwrapper']//p[07]|//div[@id='contentwrapper']//p[08]|
  //div[@id='contentwrapper']//p[09]|//div[@id='contentwrapper']//p[10]|
  //div[@id='contentwrapper']//p[11]|//div[@id='contentwrapper']//p[12]|
  //div[@id='contentwrapper']//p[13]|//div[@id='contentwrapper']//p[14]"))
 ,,9^9)),,9^9), "♦"))), "where Col1 is not null", 0), "limit "&
 MATCH("PALAU",
 QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div[@id='contentwrapper']//p[01]|//div[@id='contentwrapper']//p[02]|
  //div[@id='contentwrapper']//p[03]|//div[@id='contentwrapper']//p[04]|
  //div[@id='contentwrapper']//p[05]|//div[@id='contentwrapper']//p[06]|
  //div[@id='contentwrapper']//p[07]|//div[@id='contentwrapper']//p[08]|
  //div[@id='contentwrapper']//p[09]|//div[@id='contentwrapper']//p[10]|
  //div[@id='contentwrapper']//p[11]|//div[@id='contentwrapper']//p[12]|
  //div[@id='contentwrapper']//p[13]|//div[@id='contentwrapper']//p[14]"))
 ,,9^9)),,9^9), "♦"))), "where Col1 is not null", 0), 0)-
 MATCH("PAKISTAN",
 QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div[@id='contentwrapper']//p[01]|//div[@id='contentwrapper']//p[02]|
  //div[@id='contentwrapper']//p[03]|//div[@id='contentwrapper']//p[04]|
  //div[@id='contentwrapper']//p[05]|//div[@id='contentwrapper']//p[06]|
  //div[@id='contentwrapper']//p[07]|//div[@id='contentwrapper']//p[08]|
  //div[@id='contentwrapper']//p[09]|//div[@id='contentwrapper']//p[10]|
  //div[@id='contentwrapper']//p[11]|//div[@id='contentwrapper']//p[12]|
  //div[@id='contentwrapper']//p[13]|//div[@id='contentwrapper']//p[14]"))
 ,,9^9)),,9^9), "♦"))), "where Col1 is not null", 0), 0)&" offset "&
 MATCH("PAKISTAN",
 QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 "//div[@id='contentwrapper']//p[01]|//div[@id='contentwrapper']//p[02]|
  //div[@id='contentwrapper']//p[03]|//div[@id='contentwrapper']//p[04]|
  //div[@id='contentwrapper']//p[05]|//div[@id='contentwrapper']//p[06]|
  //div[@id='contentwrapper']//p[07]|//div[@id='contentwrapper']//p[08]|
  //div[@id='contentwrapper']//p[09]|//div[@id='contentwrapper']//p[10]|
  //div[@id='contentwrapper']//p[11]|//div[@id='contentwrapper']//p[12]|
  //div[@id='contentwrapper']//p[13]|//div[@id='contentwrapper']//p[14]"))
 ,,9^9)),,9^9), "♦"))), "where Col1 is not null", 0), 0)-1, 0))

spreadsheet demo


更短的公式:

=ARRAYFORMULA(QUERY(QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 JOIN("|", "//div[@id='contentwrapper']//p["&ROW(A1:A15)&"]"))),,9^9)),,9^9), "♦"))), 
 "where Col1 !=''", 0), "limit "&
 MATCH("PALAU", QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 JOIN("|", "//div[@id='contentwrapper']//p["&ROW(A1:A15)&"]"))),,9^9)),,9^9), "♦"))),
 "where Col1 !=''", 0), 0)-
 MATCH("PAKISTAN", QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 JOIN("|", "//div[@id='contentwrapper']//p["&ROW(A1:A15)&"]"))),,9^9)),,9^9), "♦"))),
 "where Col1 !=''", 0), 0)&" offset "&
 MATCH("PAKISTAN", QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY("♦"&TRANSPOSE(IMPORTXML(
 "https://www.iatatravelcentre.com/international-travel-document-news/1580226297.htm", 
 JOIN("|", "//div[@id='contentwrapper']//p["&ROW(A1:A15)&"]"))),,9^9)),,9^9), "♦"))),
 "where Col1 !=''", 0), 0)-1, 0))

XPath 方法(一种用于国家列表,一种用于每个国家的数据 + 2 种用于特定国家):

https://docs.google.com/spreadsheets/d/1_sKRvmsSxQ9tiU0aDOQc9wVxC2ZhMO8488jcKZVlN94/edit?usp=sharing

最终结果在F栏。