使用 Google 个表格进行网页抓取。 importxml函数xpath修正

Using Google Sheets for web scraping. Importxml function xpath correction

我正在尝试使用 google 工作表中的 importxml 功能从网站上抓取 MPN(制造商部件号)以获取产品列表(大约 2000)。

网站: http://gun.deals/search/apachesolr_search/640832007756

说明说要使用 importxml 公式。 link 是 A1,然后在 chrome 中使用 inspector 复制 xpath。结果:

 =IMPORTXML(A1,"//*[@id='content']/div[3]/div[2]/div/div/div/div/div/div[2]/dl/div[2]/dd/a")

(说明书上还说要把双引号改为单引号内容。)

错误是导入"content in empty"公式时运行。我已尝试进行编辑,但我认为 XPath 不正确。有人说你不能按照说明从 inspector 复制粘贴。

我尝试的另一件事是 =IMPORTHTML(A1, "list", 8)。这 returns UPC 和 MPN。但它将 MPN 放在第二行。

我是新手,最近几个晚上都在寻找解决方案。任何帮助将非常感激。

也是奖金问题。如果我们有 MPN,刮掉 UPC 的公式是什么? https://gun.deals/search/apachesolr_search/J941PSL9

  • 您想从 "UPC" 的值中检索 "MPN" 的值。
  • 您想从 "MPN" 的值中检索 "UPC" 的值。
  • 您想使用 Google 电子表格的内置函数来实现此目的。

如果我的理解是正确的,这个示例公式怎么样?请将此视为几个答案之一。

模式 1:

在此模式中,"MPN" 的值是从 "UPC" 的值中检索的。

示例公式:

=IMPORTXML("http://gun.deals/search/apachesolr_search/"&A2,"//li[contains(text(),'MPN')]/a")
  • xpath 是 //li[contains(text(),'MPN')]/a
  • 在这种情况下,"UPC" 的值被放入单元格 "A2"。

结果:

模式二:

在此模式中,"UPC" 的值是从 "MPN" 的值中检索的。

示例公式:

=IMPORTXML("http://gun.deals/search/apachesolr_search/"&A2,"//li[contains(text(),'UPC')]/a")
  • xpath 是 //li[contains(text(),'UPC')]/a
  • 在这种情况下,"MPN" 的值被放入单元格 "A2"。

结果:

参考:

如果我误解了您的问题而这不是您想要的结果,我深表歉意。

已添加:

根据,我修改了使用以下值的公式。

Here is a list of UPC 787450038417 787450230576 661120974888 859462004015 82442306667 810237023013 798681538782 787450348196 604206120816

UPC --> MPN:

=IMPORTXML("http://gun.deals/search/apachesolr_search/"&A2,"//dd/a[../../dt[contains(text(),'UPC')]]|//dd/span[../../dt[contains(text(),'UPC')]]")
  • xpath 是 //dd/a[../../dt[contains(text(),'UPC')]]|//dd/span[../../dt[contains(text(),'UPC')]]
  • 在这种情况下,"UPC" 的值被放入单元格 "A2"。

MPN --> UPC:

=IMPORTXML("http://gun.deals/search/apachesolr_search/"&B2,"//dd/a")
  • xpath 是 //dd/a
  • 在这种情况下,"MPN" 的值被放入单元格 "B2"。

结果: