使用Google表格进行网页抓取。 Importxml函数xpath校正

时间:2019-10-29 03:19:32

标签: web-scraping google-sheets google-sheets-importxml

我正在尝试使用Google表格中的importxml函数从网站上抓取MPN(制造商零件编号)以获取产品列表(约2000个)。

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

该说明表示要使用importxml公式。链接为A1,然后在chrome中使用检查器复制xpath。结果:

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

(指令还说将双引号更改为单引号。)

运行公式时,错误导入为“内容为空”。我试图进行编辑,但我认为XPath不正确。有人说您不能按照指示从检查员那里复制粘贴。

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

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

还有奖励问题。如果拥有MPN,刮掉UPC的公式将是什么? https://gun.deals/search/apachesolr_search/J941PSL9

1 个答案:

答案 0 :(得分:2)

  • 您要从“ UPC”的值中检索“ MPN”的值。
  • 您要从“ MPN”的值中检索“ UPC”的值。
  • 您想使用Google Spreadsheet的内置功能来实现这一目标。

如果我的理解是正确的,那么该示例公式如何?请认为这只是几个答案之一。

模式1:

在这种模式下,从“ UPC”的值中检索“ MPN”的值。

示例公式:

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

结果:

enter image description here

模式2:

在这种模式下,从“ MPN”的值中检索“ UPC”的值。

示例公式:

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

结果:

enter image description here

参考:

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

已添加:

your replying中,我修改了使用以下值的公式。

  

以下是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”中。

结果:

enter image description here

相关问题