如何在谷歌应用程序脚本环境中获取谷歌搜索输出
How to get google search output in the google application script environment?
如果我使用下一个函数来获取谷歌输出:
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);
}
并得到
关于本页
我们的系统检测到来自您的计算机网络的异常流量。 此页面检查是否真的是您发送请求,而不是机器人。 为什么会这样?
如我所见,我必须使用一些特殊的谷歌服务来获取搜索输出而不是被禁止?
您可以使用简单的正则表达式来提取Google搜索结果。
var regex = /<h3 class='"r'">(['s'S]*?)<'/h3>/gi;
var items = response.getContentText().match(regex);
或者,您可以在工作表中使用 ImportXML 函数。
=IMPORTXML(GOOGLE_URL, "//h3[@class='r']")
请参阅: 使用表格抓取谷歌搜索
相关文章:
- 在谷歌地图上获取事件的x,y坐标
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 如何获取谷歌地图多边形的当前fillColor
- 如何用javascript获取谷歌地图的经度和纬度
- 如何在谷歌网站中使用javascript获取当前页面的网址
- 如何从谷歌脚本中获取JS变量
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 如何在javascript谷歌地图中获取数据库值
- 如何获取显示在谷歌搜索右侧的图像链接
- 在谷歌api v3中使用地理自动完成功能获取邮政编码
- 从谷歌分析中获取所有事件
- 获取SW&谷歌静态地图API的东北角
- 谷歌位置api获取细节,并不是每个地方都返回
- 获取请求,谷歌picasa API
- 谷歌地图:获取点击或标记(x,y)像素坐标内的标记点击侦听器
- 获取相册列表谷歌Picasa
- 获取谷歌位置自动完成状态
- 在java中,通过谷歌获取地址的经度和纬度的最佳方式是什么
- 从谷歌获取随机网址并将其存储到数组中