使用 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"。
结果:
我正在尝试使用 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"。