【发布时间】:2015-03-13 03:59:08
【问题描述】:
如果我使用下一个函数来获取谷歌输出:
function myFunction() {
var post_url, result;
post_url = "http://www.google.com/search?q=stack+overflow";
result = UrlFetchApp.fetch(post_url);
Logger.log(result);
}
没用。
附言
抱歉,我必须探索一些依赖关系。
我举个例子
function scrapeGoogle() {
var response = UrlFetchApp.fetch("http://www.google.com/search?q=labnol");
var myRegexp = /<h3 class=\"r\">([\s\S]*?)<\/h3>/gi;
var elems = response.getContentText().match(myRegexp);
for(var i in elems) {
var title = elems[i].replace(/(^\s+)|(\s+$)/g, "")
.replace(/<\/?[^>]+>/gi, "");
Logger.log(title);
}
}
它有效,然后我开始做一些修改,并注意到当我在代码中有一些错误时,它会给我一个错误
http://www.google.com/search?q=labnol 请求失败,返回代码 503.
所以我做了一些没有错误的研究,它的解决方案有效。但是当我开始将它形成为 lib 中的函数时,它开始每次都向我抛出 503 错误!
我对这种行为感到非常惊讶......
这是一个简短的视频,仅供参考。 https://youtu.be/Lem9eiIVY0I
附言
哦!我违反了一些违规行为,因此谷歌引擎将我发送到停止列表
所以我运行这个:
function scrapeGoogle() {
var options =
{
'muteHttpExceptions': true
}
var response = UrlFetchApp.fetch("http://www.google.com/search?q=labnol", options);
Logger.log(response);
}
并获取
关于此页面
我们的系统检测到来自您的计算机网络的异常流量。此页面检查是否真的是您发送请求,而不是机器人。为什么会这样?
如我所见,我必须使用一些特殊的谷歌服务来获取搜索输出而不是被禁止?
【问题讨论】:
-
什么不起作用?你有错误吗?如果有人要帮助您,您需要提供更多信息。
标签: javascript google-apps-script google-search