web-scraping - 使用 Google Sheets 进行网页抓取。 Importxml函数xpath修正

标签 web-scraping google-sheets google-sheets-formula

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

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

说明书上说要使用importxml公式。链接是A1,然后使用chrome中的inspector复制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

最佳答案

  • 您想要从“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”中。

结果:

enter image description here

模式 2:

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

示例公式:

=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 ,我修改了公式以使用以下值。

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[包含(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

关于web-scraping - 使用 Google Sheets 进行网页抓取。 Importxml函数xpath修正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601028/

相关文章:

delphi - Delphi 中的网页抓取

python - 仅检索 XML feed 的一部分

google-sheets - 如何将数据移动到 Google 表格中右侧的空白单元格?

google-sheets - Google Sheets - 根据值查找最近日期

python - 从 Scrapy 输出中删除文本的代码

python - 在python中使用xpath隔离href内容

reactjs - 将 Google 表格中的电子表格数据提取到 React 网络应用程序中

google-sheets - GoogleFinance - 调整后的股票收盘价

google-apps-script - 需要一个脚本,根据工作表中输入的数据在 Google 云端硬盘中创建文件夹

google-sheets - g表: How to use SPLIT in ARRAYFORMULA over columns