【问题标题】:Can importXML() Be Used to Scrape Data from SERPs?可以使用 importXML() 从 SERP 中抓取数据吗?
【发布时间】:2019-03-05 07:55:14
【问题描述】:

我阅读了一篇文章,其中解释了如何在 Google 表格中使用 importXML() 函数来访问网页、从中抓取数据并将结果放入单元格中。例如,如果我在单元格 A1 中放置一个网站 URL,在单元格 A2 中放置以下公式:

=importxml(A1,"//meta[@name='description']/@content")

那么A2会在A1指定的网页上显示元描述标签的内容。

我想使用类似的方法,但在单元格 A1 中放置一个 Google 查询。

我将以下公式(我在英国期刊的一篇文章中找到)复制到单元格 A1:

=ArrayFormula(regexreplace(regexextract(importxml("https://www.google.co.uk/search?q=trade+balance&pws=0&gl=UK&num=50","//h3[@class='r']/a/@href"), "http.*&sa\b"), "&sa", ""))

它填充了 50 行数据。

然后我将 num 参数更改为“num=20”,响应为“Could not fetch URL ...”

然后我在另一个单元格中输入了相同的公式,将 URL 替换为“https://www.google.com”,将 gl 参数替换为“gl=US”,响应再次为“Could not fetch URL ...”

因此,看起来英国的 Google 可能会让您定期执行此操作,而美国的 Google 不允许。

任何人都可以提出替代方案吗?是否需要密钥才能获得权限?

顺便说一句 - 我在一个论坛上读到,您可以使用 Google 的自定义搜索 API 和 UrlFetch() 来收集搜索结果并填充 Google 表格。但在尝试之前,我想我首先询问使用 importXML 的可能性。

谢谢。

【问题讨论】:

  • 那么你想具体抓取什么网站?因为这取决于每个站点是否可能
  • 感谢您的回复。我想抓取一个谷歌搜索结果页面。在我的示例中,我使用了这个函数调用:importxml("google.co.uk/…

标签: google-sheets google-sheets-importxml


【解决方案1】:

Google 最近一直在阻止来自 Apps 脚本和 Google 表格的搜索请求,尽管这些请求是来自它们自己的 IP 之一。他们可能这样做是为了防止刮擦。在某些情况下它可以工作并且您可以抓取 Google 搜索,但是,它有时间限制,因此结果会在几分钟/几小时后消失。您可以尝试抓取 Bing、DuckDuckGo 或其他搜索引擎。

【讨论】:

  • 谢谢。我在某处读到 Google 的自定义搜索 API 和 UrlFetch() 是另一种抓取 SERP 的方法,但我还没有探索过它们。知道它们是否可行吗?
  • 我会研究抓取 Bing。感谢您提及。
  • 不知道 Google 的自定义搜索 API 和 UrlFetch()。从未测试过
  • 如果你熟悉python,也许你可以试试googlesearch库,它只需要几行代码就可以检索带有搜索关键字的URL
猜你喜欢
  • 1970-01-01
  • 2022-12-30
  • 2020-03-06
  • 2018-07-09
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
  • 2019-08-02
相关资源
最近更新 更多