上回说到
因为过生日偷懒没去写代码
现在是来还债的
继续前情提要
废话不多说
上来就是干
自带中文注释
写好后
设置定时运行
谷歌竟然能每分钟刷新命令
为了世界和平
还是半小时吧
运行了一段时间后
还是挺OK的
而且DataBase表里还存了所有的历史数据
至此
完美
可是
文章内容少于300字
不能声明原创。。。
哎
贴代码以凑字数
==========
function updateDB() {
/* 配置部分 */
//第一步,获取当前Google Spreadsheet。
var ss = SpreadsheetApp.getActiveSpreadsheet();
//第二步,文件中有俩表,一个叫Feeder,另一个叫DataBase。
var DataBase = ss.getSheetByName("DataBase");
var Feeder = ss.getSheetByName("Feeder");
//第三步,把百度新闻搜索结果中处理好的数据赋值给values。默认百度返回10条结果,每条结果包含3部分有效数据。
var range = Feeder.getRange(2, 1, 10, 3);
var values = range.getValues();
//第四步,增加新数据的时候,需要避免添加重复项。这里选择DataBase表中第二列的链接来作为对比基准。
var Existing = DataBase.getRange(2, 2, DataBase.getLastColumn(), 1);
var ExistingValues = Existing.getValues();
/* 核心算法 */
//对Feeder表中的十个数据循环进行测试。
for (i=0;i
{
//添加一个重复性判断开关,默认不重复。
var IsDupe = 0;
//把新数据的链接与DataBase中的现有链接进行对比,如果有一样的,设定为重复值。
for (var row in ExistingValues)
{
if (ExistingValues[row][0]==values[i][1])
{
IsDupe = IsDupe + 1;
}
}
if (IsDupe==1)
{
Logger.log("It's a duplicate article");
}
else
{
DataBase.appendRow(values[i]);
//这里也可以添加一个邮件提醒功能。
/*
var subject = "你有新订单啦:" + values[i][0];
var message = values[i][2] + "\n\n" + values[i][1];
MailApp.sendEmail(email, subject, message);
*/
}
}
}
=======
能坚持刷完代码的你
是条汉子。。。
那就来碗毒鸡汤吧
下回预告
感觉这是个开放性的解决方案啊
比如可以把即时推送改成
每天早上8点准时打包发送
也许可以修改发送的邮件样式
又比如
抓取的数据都在一个excel里
好像是一个数据库啊
貌似Google Spreadsheet是有个后门
可以直接运行SQL查询的
再比如
GAS可以发布成任何格式的web应用
json/xml/txt
停
今天脑子用够了
提前睡了
生命在于运动
技术改变生活
领取 专属20元代金券
Get大咖技术交流圈