【问题标题】:Using Google Sheets for web scraping. Importxml function xpath correction使用 Google 表格进行网页抓取。 importxml函数xpath修正
【发布时间】:2019-10-29 03:19:32
【问题描述】:

我正在尝试使用谷歌表中的 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

【问题讨论】:

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


    【解决方案1】:
    • 您想从“UPC”的值中检索“MPN”的值。
    • 您想从“MPN”的值中检索“UPC”的值。
    • 您希望使用 Google 电子表格的内置功能来实现此目的。

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

    模式一:

    在这个模式中,“MPN”的值是从“UPC”的值中检索出来的。

    示例公式:

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

    结果:

    模式 2:

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

    示例公式:

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

    结果:

    参考:

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

    补充:

    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”中。

    结果:

    【讨论】:

    • 在大多数项目上出现错误“导入的内容为空”。大约每 20 人中有 1 人会加入 MPN。这是 UPC 列表 787450038417 787450230576 661120974888 859462004015 82442306667 810237023013 798681538782 787450348196 604206120816
    • @Planterguy 感谢您的回复。我带来的不便表示歉意。我的回答是针对你的问题。所以我确认了http://gun.deals/search/apachesolr_search/640832007756https://gun.deals/search/apachesolr_search/J941PSL9的URL。但是在您的回复中,我没有注意到您还想检索其他 URL。这是因为我的技术不好。我对此深表歉意。为了您的回复,我更新了我的答案。你能确认一下吗?如果这不是你想要的结果,我不得不再次道歉。
    • 感谢您的帮助。这将节省我很多时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多