假设您正在寻找一种方法来从 Google 搜索页面中提取结果计数。首先,找出页面中包含的位置。例如,在 Firefox 中,您可以使用 Inspector(检查元素)来执行此操作。
以前有关于从网页中解析信息的问题,使用 UrlFetch 和 Xml 服务很容易完成。请参阅这些其他问题以了解一些背景知识,以及简化您的解决方案的方便实用的getDivById()
功能。
代码
该GoogleHits
函数可以用作工作表中的自定义函数。测试函数直接调用它。
function test_GoogleHits() {
function test( keywords ) {
Logger.log( keywords + ' : ' + GoogleHits(keywords) );
}
test('googlehits');
test('pizza');
test('today\'s weather' );
}
function GoogleHits(keywords) {
var target = "https://www.google.ca/search?q="+encodeURI(keywords);
var pageTxt = UrlFetchApp.fetch(target).getContentText();
var pageDoc = Xml.parse(pageTxt,true);
var contentDiv = getDivById( pageDoc.getElement().body, 'resultStats' );
return extractInteger( contentDiv.Text );
}
function extractInteger(str) {
var num = "";
var inNum = false;
for(var i=0; i<str.length; i++) {
var c = str.charAt(i);
if (c>='0' && c<= '9') {
if (!inNum) inNum = true;
num += c;
}
else if (c !== ',') {
if (inNum) break;
}
}
return parseInt(num);
}