从Bing中提取索引页



我想提取Bing结果页的索引页。

我的代码是

function myFunction() {
var html = UrlFetchApp.fetch('https://www.bing.com/search?q=site%3Aapple.com').getContentText();
var doc = XmlService.parse(html);
var html = doc.getRootElement();
var indexed_pages = getElementsByClassName(html, 'sb_count')[0];
var output = XmlService.getRawFormat().format(menu);
return HtmlService.createHtmlOutput(indexed_pages);
}

每次它都会给我错误:

异常:第33行出现错误:实体"nbsp"被引用,但未被引用声明。(3号线(

因此,在第3行中,XmlService出现问题。

当我将URL更改为https://www.bing.com/search?q=site%3Aapple.com%2Fuk,我得到另一个错误

异常:第37行出现错误:不允许在评论。(3号线(

当我将URL更改为http://en.wikipedia.org/wiki/Document_Object_Model它是有效的。我想我的输出是XmlService无法解析的。我只是不知道为什么它可以解析Wikipedia输出,而不能解析Bing输出。

你知道吗?谢谢

您想要从https://www.bing.com/search?q=site%3Aapple.com%2Fuk的URL中检索400.000 Results。如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。

问题和解决方法:

不幸的是,来自https://www.bing.com/search?q=site%3Aapple.com%2Fuk的HTML似乎无法由XmlService直接解析。如果要使用XmlService,则需要处理HTML数据以使用XmlService进行分析。因此,在这种情况下,作为一种变通方法,使用regex直接检索400.000 Results的值如何?

示例脚本如下。

示例脚本:

var html = UrlFetchApp.fetch('https://www.bing.com/search?q=site%3Aapple.com%2Fuk').getContentText();
var res = /<span class="sb_count">(w.+?)</span>/.exec(html)[1];
Logger.log(res)

参考:

  • exec((

最新更新