如何实施Google应用脚本以返回Google搜索的点击次数?具体来说,我有一个Google电子表格,其中单元格A2中的公式为=GOOGLEHITS (A1)
。
我到目前为止:
function GoogleHits (keywords)
{
return ??? ("\"" + keywords + "\"") ;
}
并想知道“???”应该替换为
答案 0 :(得分:1)
假设您正在寻找一种从Google搜索页面中提取结果计数的方法。首先,弄清楚页面中包含的位置。例如,在Firefox中,您可以使用Inspector(Inspect Element)执行此操作。
以前有一些关于从网页中解析信息的问题,使用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);
}