可以使用importXML()从SERP抓取数据吗?

时间:2019-03-05 07:55:15

标签: google-sheets google-sheets-importxml

我读了一篇文章,解释了如何在Google表格中使用importXML()函数访问网页,从中抓取数据并将结果放置在单元格中。例如,如果我将网站URL放在单元格A1中,并将以下公式放在单元格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”,响应为“无法获取URL ...”

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

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

有人可以建议替代方法吗?您需要密钥才能获得许可吗?

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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