如何订阅感兴趣的新闻和帖子(3)

上回说到

因为过生日偷懒没去写代码

现在是来还债的

继续前情提要

废话不多说

上来就是干

自带中文注释

写好后

设置定时运行

谷歌竟然能每分钟刷新命令

为了世界和平

还是半小时吧

运行了一段时间后

还是挺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

今天脑子用够了

提前睡了

生命在于运动

技术改变生活

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181010G1T6ZD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券