【问题标题】:Incorrect URL/XPath when using Google sheets IMPORTXML使用 Google 表格 IMPORTXML 时的 URL/XPath 不正确
【发布时间】:2020-05-12 05:01:22
【问题描述】:

我正在尝试将搜索结果从 google 导入到我的电子表格中。我在 Wikipedia 页面上取得了成功,但由于某种原因,Google 搜索无法正常工作(给出“无法获取 url”错误)。我确定问题出在我的 URL 或 XPath 中,但我一直在尝试各种方法,但我迷路了。这是我所拥有的:

=IMPORTXML("https://www.google.com/search?q=dom+fera+easy+thing+released", "//div[@class='Z0LcW XcVN5d']")

我将下面的电子表格链接为仅供查看,以供参考。最终目标是能够通过网络抓取发布多年的歌曲。如有任何帮助,我将不胜感激!

https://docs.google.com/spreadsheets/d/1bt8MJ23nfGAv6ianaR-sd7DM5DNn98p7zWSG1UzBlEY/edit?usp=sharing

【问题讨论】:

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


    【解决方案1】:

    AFAIK,您无法在 Google 表格中解析来自 GoogleSearch 的结果。 使用 Discogs、MusicBrainz、All Music... 来获取发布日期可能很有用。 但似乎你们的一些团体鲜为人知。因此,您可以使用 Youtube 来获取日期。

    注意:我们假设在 Youtube 上发布的年份对应于发布年份。 当然,这不是 100% 正确的。例如,艺术家可以在发布几个月后剪辑他们的视频。或者在 Youtube 上不发布任何内容。 因此,此方法适用于各种歌曲,但不适用于所有歌曲。用最近的乐队和歌曲,应该没问题。

    为此,您可以使用Youtube APIIMPORTXML 公式。在这两种情况下,我们总是将搜索引擎的第一个结果(相关顺序)作为来源。

    您需要一个API key 和一个ImportJSON script(归功于 Brad Jasper)才能使用 API 方法。安装脚本并激活 API 密钥后,您可以粘贴到单元格 B3:

    ="https://www.googleapis.com/youtube/v3/search?key={yourAPIKey}&part=snippet&type=video&filter=items&regionCode=FR&q="&ENCODEURL(A3)
    

    我们使用您在 A 列中输入的内容生成要查询的 url。 我们使用“regionCode=FR”,因为有些歌曲在美国不可用(“我需要你 FMLYBND”)。这样我们就能得到正确的发布日期。

    在 C3 中,您可以粘贴:

    =LEFT(QUERY(ImportJSON(B3);"SELECT Col11 LIMIT 1 label Col11''";1);4)
    

    我们解析 JSON,选择感兴趣的列,感兴趣的行,然后我们清理结果。

    使用IMPORTXML方法,可以粘贴到E3:

    ="https://www.youtube.com"&IMPORTXML("https://www.youtube.com/results?search_query="&A3;"(//div[@class='yt-lockup-thumbnail contains-addto'])[3]/a/@href")
    

    我们用搜索引擎的第一个搜索结果构造url。

    在F3中,你可以粘贴:

    =LEFT(IMPORTXML(E3;"//meta[@itemprop='datePublished']/@content");4)
    

    我们解析之前构建的 url,然后提取出版年份。

    如您所见,第 5 行的结果有所不同。那是因为这首歌在美国不可用。 IMPORTXML 方法返回的第一个结果与使用“FR”标志的API 方法不同。

    旁注:我在欧洲。所以 ”;”在公式中应替换为“,”。

    【讨论】:

      【解决方案2】:

      google 不支持将 google 搜索网页抓取到 google 表格中。此选项在 2 年前被禁用。您将需要使用替代搜索引擎

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 2018-03-28
        • 2016-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多