错误 - 无法获取网址:https://www.google.com/search?num = 20& q="searchquery“

时间:2015-04-10 15:29:46

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

背景

我使用Google表格检查Google搜索中是否出现了一系列字符串:

=IMPORTXML(CONCATENATE("https://www.google.com/search?num=20&q=",CHAR(34), A1, CHAR(34)), CONCATENATE("count(//span[contains(., '",A1,"')])")),"THINKING")

一旦返回计数,下一个单元格将执行相同的过程,依此类推。

问题

然而,在不同数量的查询之后,下一个单元格显示:

  

错误 - 无法获取网址:   https://www.google.com/search?num=20&q=" SEARCHQUERY"

尝试解决方案

我已经尝试找到原因,但目前还不能。有几点需要指出:

  • 过去大约在1.5个月之前完成了工作 - 不确定自那时以来在谷歌方面发生了什么变化
  • 有时这会发生在第一个查询中,表明问题可能与请求频率无关。
  • 此外,这个相同的任务在一个月前工作正常,连续数百个请求。我已尝试在旧Google表格上运行此功能,但这仅限于50个XML请求。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在XPath表达式的末尾有一个字符串“THINKING” - 我认为它不应该存在。

=IMPORTXML(CONCATENATE("https://www.google.com/search?num=20&q=",CHAR(34), "Adidas", CHAR(34)), CONCATENATE("count(//span[contains(., '", "Adidas" ,"')])"))

也许您打算在调用IMPORTXML()之外添加字符串“THINKING”?

但真正奇怪的是,上面的公式会返回

5

而相同的简化版本(取消连接):

=IMPORTXML("https://www.google.com/search?num=20&q='Adidas'", "count(//span[contains(., 'Adidas')])")

产量

6

答案 1 :(得分:-1)

我现在在我的googlesheet中遇到了同样的问题,并且允许网站上的Flash解决了该问题。