2019年9月25日 | 标签:

背景介绍

因为工作的需要,需要监控一些网页的内容,如果发生变化,需要发送邮件通知别人,目前能做到的是自动发邮件,但是我们有时候没有登录邮箱,希望找个办法能自动发短信给别人或者自己
查看更多精彩图片

解决思路
目前网上找了所有能免费发短信的方法,发现都不能用 原因是这里面有费用,所有只有中国移动版本的139邮箱的短信通知功能(可以预览正文)可以用,我们可以把报警的邮箱发到自己的139邮箱里,然后移动就会短信给自己 告知内容
注意事项
我们可以加一个壳,保护自己的手机号,比如我们可以要别人发到我们的QQ邮箱,在qq邮箱做一个设置 ,包含特征关键词的再转发到我们的139邮箱,这样可以保护隐私,也可以随时终止这个自动发送(改下规则即可)
实施过程
139移动准备
1,访问139邮箱网站 mail.10086.cn
查看更多精彩图片
查看更多精彩图片
2 ,默认所有移动用户都注册了,然后登陆后 设置短信通知
QQ邮箱准备
1,新建一个qq邮箱的文件夹,例如短信发送
查看更多精彩图片

查看更多精彩图片

2,创建个规则,如果邮件主题 包含 短信  则 自动发到这个文件夹,并且转发到我们139邮箱
现在可以预览效果了
查看更多精彩图片

利用移动139邮箱自动免费发送短信-博主亲测可用(多图)

背景介绍

因为工作的需要,需要监控一些网页的内容,如果发生变化,需要发送邮件通知别人,目前能做到的是自动发邮件,但是我们有时候没有登录邮箱,希望找个办法能自动发短信给别人或者自己
查看更多精彩图片

解决思路
目前网上找了所有能免费发短信的方法,发现都不能用 原因是这里面有费用,所有只有中国移动版本的139邮箱的短信通知功能(可以预览正文)可以用,我们可以把报警的邮箱发到自己的139邮箱里,然后移动就会短信给自己 告知内容
注意事项
我们可以加一个壳,保护自己的手机号,比如我们可以要别人发到我们的QQ邮箱,在qq邮箱做一个设置 ,包含特征关键词的再转发到我们的139邮箱,这样可以保护隐私,也可以随时终止这个自动发送(改下规则即可)
实施过程
139移动准备
1,访问139邮箱网站 mail.10086.cn
查看更多精彩图片
查看更多精彩图片
2 ,默认所有移动用户都注册了,然后登陆后 设置短信通知
QQ邮箱准备
1,新建一个qq邮箱的文件夹,例如短信发送
查看更多精彩图片

查看更多精彩图片

2,创建个规则,如果邮件主题 包含 短信  则 自动发到这个文件夹,并且转发到我们139邮箱
现在可以预览效果了
查看更多精彩图片

2019年9月21日 | 标签:

项目背景

个人理财购买了一些基金,希望能理性的安装止损和止盈进行一些交易

例如我购买的价格是1.2元,需要在上涨5%卖出 进行止盈,或者下跌5%就进行卖出进行止损,因为工作的关系没办法每天去看基金的价格,就算看了还要回想下是否到了需要卖出的时间 不是很智能

需求分析

需要制作一个工具,每天代替我去查看基金的价格,是否达到卖出价格,每周可以发一个周报给我,告诉我波动情况,和趋势(马上要接近止盈还是止损)

业务流程及原理

1,获取数据

  1. 可以通过google sheets的importxml函数,使用天天基金网作为数据源获取当天的预估(使用下午2点30的数据可以作为当天的交易价格,3点收盘),设置脚本定时器每天的下午2.30运行获取数据脚本

2,分析和整理数据

  1. 将获得的预估价格数据与设置的目标区间进行对比,同时吧数据记录在表格中,作为趋势图分析

3,报告数据

  1. 如果当天预估价格达到目标值,发送短信邮件通知进行买卖
  2. 如果一周已经结束,发送短信邮件汇报本周情况

分部图解过程

1,工具草稿界面设计制作

使用铅笔和纸,对工具的输入,输出,提醒,界面进行使用设计,创建一个google sheets 文档 画出草稿

涉及2大区域

输入信息

需要监控的基金的代码 必填,买入日期 选填(可能是不同天分段买入)买入单价(平均成本),买入金额,以及期望的止损和盈点,通知方法(邮件 ,短信),通知频率,通知内容模板

输出信息

基金目前的价格和浮动盈亏的每天记录的价格以及当天的2:30的和3:00的预估

2,在Google Sheets中实现上述界面的排版和基本美化

在实际的编码过程中发现同时要实现2个逻辑,既2点30检查数据的如果达到要提醒的价格则需要发布定制的邮件,还有一个逻辑是晚上11点30检查数据,如果满足周报和月报时间则发送邮件

本来想把这2个逻辑写一起,但是发现不容易排错和后期维护,于是就在界面和后台完全吧他们分开,用2个sheets来负责模块 交易提醒功能,其中一个sheet用来设置和收集数据,并进行简单加工,和保存数据,另外一个sheet用来编辑邮件模板这样的好处是可以把外发的数据和收集的数据分离开,同时也保留了本地的数据,为以后进行2次分析做了准备

如图所示raw data-notify表格,是设置数据和获取数据的表格,并且我需要每天

保存这个结果

数据抓取区

需要输入数据源的URL以及数据的基本信息

制定我要抓取的字段名称以及字段的代码和对应的Xpath

数据抓取结果区

使用xpath和函数importxml把3个字段给抓取下来,同时从另外的表格获得基金的最低和最高止盈点,并进行2次判断,使用ifs函数,来获得发的邮件的类型

数据保存区

将原始数据保存下来,这里主要是使用google scripts的sheets.getrange(‘b3’).getvalue() 和sheets.getrange(‘b3’).setvalue()

将获取的值保存在结果区(因为获取的值是通过公式获得 实时会变)

ss = SpreadsheetApp.getActiveSpreadsheet();

var sheet1 =ss.getSheetByName(”email-notify”)

kaiguan=sheet1.getRange(3,1).getValue()

方便以后调用和二次编辑

具体代码如下

该代码设置为每天2点30运行

她会吧获取的数据保存到数据保存区

主要是获取当前行数 然后再使用getrange(I,2)动态单元格地址进行赋值

而邮件发送功能也是单独的一个sheet如下

首先要确认这个邮件是否需要发送,以及发送的对象和内容

把这些参数传回到script即可完成

判断是否发送可以从之前的sheet里面由个判断执行来决定

发送的内容可以

发送的内容可以使用自定义模板并且加上一些变量,这些变量是从之前获取的数据得到,

把邮件模块单独独立出

后期修改方便,应该找个工具只有第一次需要访问这个google sheets设置,以后都是收到邮件,所以对邮件的需求修改需求是很多的。

这个dashboard表主要是用来设置基金的买入价格和提醒价格

周报月报功能

首先设置好需要抓取的数据

然后再进行判断

然后在保存数据

这里的判断需要分析当前周是否是周6(需要进行发周报了)

当前天是否是1号(需要发月报了)

然后把获取的区间数据进行判断

即可

最后结合报告输出即可

最终的报告模板和上面的交易提醒类似

代码也是类似

 https://docs.google.com/spreadsheets/d/12PDgyudS8yHLiHGTmxx17ezZJ-G6uxMCBP4dLMibFrg/edit?usp=sharing

 

免费短信智能提醒基金买卖价格-利用google sheets和139邮箱

项目背景

个人理财购买了一些基金,希望能理性的安装止损和止盈进行一些交易

例如我购买的价格是1.2元,需要在上涨5%卖出 进行止盈,或者下跌5%就进行卖出进行止损,因为工作的关系没办法每天去看基金的价格,就算看了还要回想下是否到了需要卖出的时间 不是很智能

需求分析

需要制作一个工具,每天代替我去查看基金的价格,是否达到卖出价格,每周可以发一个周报给我,告诉我波动情况,和趋势(马上要接近止盈还是止损)

业务流程及原理

1,获取数据

  1. 可以通过google sheets的importxml函数,使用天天基金网作为数据源获取当天的预估(使用下午2点30的数据可以作为当天的交易价格,3点收盘),设置脚本定时器每天的下午2.30运行获取数据脚本

2,分析和整理数据

  1. 将获得的预估价格数据与设置的目标区间进行对比,同时吧数据记录在表格中,作为趋势图分析

3,报告数据

  1. 如果当天预估价格达到目标值,发送短信邮件通知进行买卖
  2. 如果一周已经结束,发送短信邮件汇报本周情况

分部图解过程

1,工具草稿界面设计制作

使用铅笔和纸,对工具的输入,输出,提醒,界面进行使用设计,创建一个google sheets 文档 画出草稿

查看更多精彩图片

 

涉及2大区域

输入信息

需要监控的基金的代码 必填,买入日期 选填(可能是不同天分段买入)买入单价(平均成本),买入金额,以及期望的止损和盈点,通知方法(邮件 ,短信),通知频率,通知内容模板

输出信息

基金目前的价格和浮动盈亏的每天记录的价格以及当天的2:30的和3:00的预估

2,在Google Sheets中实现上述界面的排版和基本美化

在实际的编码过程中发现同时要实现2个逻辑,既2点30检查数据的如果达到要提醒的价格则需要发布定制的邮件,还有一个逻辑是晚上11点30检查数据,如果满足周报和月报时间则发送邮件

本来想把这2个逻辑写一起,但是发现不容易排错和后期维护,于是就在界面和后台完全吧他们分开,用2个sheets来负责模块 交易提醒功能,其中一个sheet用来设置和收集数据,并进行简单加工,和保存数据,另外一个sheet用来编辑邮件模板这样的好处是可以把外发的数据和收集的数据分离开,同时也保留了本地的数据,为以后进行2次分析做了准备

查看更多精彩图片

如图所示raw data-notify表格,是设置数据和获取数据的表格,并且我需要每天

保存这个结果

数据抓取区

需要输入数据源的URL以及数据的基本信息

制定我要抓取的字段名称以及字段的代码和对应的Xpath

数据抓取结果区

使用xpath和函数importxml把3个字段给抓取下来,同时从另外的表格获得基金的最低和最高止盈点,并进行2次判断,使用ifs函数,来获得发的邮件的类型

数据保存区

将原始数据保存下来,这里主要是使用google scripts的sheets.getrange(‘b3’).getvalue() 和sheets.getrange(‘b3’).setvalue()

将获取的值保存在结果区(因为获取的值是通过公式获得 实时会变)

ss = SpreadsheetApp.getActiveSpreadsheet();

var sheet1 =ss.getSheetByName(”email-notify”)

kaiguan=sheet1.getRange(3,1).getValue()

方便以后调用和二次编辑

具体代码如下

查看更多精彩图片

该代码设置为每天2点30运行

她会吧获取的数据保存到数据保存区

主要是获取当前行数 然后再使用getrange(I,2)动态单元格地址进行赋值

而邮件发送功能也是单独的一个sheet如下

 

查看更多精彩图片

首先要确认这个邮件是否需要发送,以及发送的对象和内容

把这些参数传回到script即可完成

判断是否发送可以从之前的sheet里面由个判断执行来决定

发送的内容可以

发送的内容可以使用自定义模板并且加上一些变量,这些变量是从之前获取的数据得到,

把邮件模块单独独立出

后期修改方便,应该找个工具只有第一次需要访问这个google sheets设置,以后都是收到邮件,所以对邮件的需求修改需求是很多的。

这个dashboard表主要是用来设置基金的买入价格和提醒价格

周报月报功能

首先设置好需要抓取的数据

然后再进行判断

然后在保存数据

这里的判断需要分析当前周是否是周6(需要进行发周报了)

当前天是否是1号(需要发月报了)

然后把获取的区间数据进行判断

即可

最后结合报告输出即可

最终的报告模板和上面的交易提醒类似

代码也是类似

 https://docs.google.com/spreadsheets/d/12PDgyudS8yHLiHGTmxx17ezZJ-G6uxMCBP4dLMibFrg/edit?usp=sharing

 

2019年9月15日 | 标签:

内容:

项目背景
有一个记账的网站,用来每天记录一些消费数据,这些数据其实是从支付宝后台下载后经过简单的整理
可以再输入到记账网站。
希望通过php脚本来实现填写表单的动作,完成对大量数据填写表单的自动处理
查看更多精彩图片
目前的问题:
运行环境问题,公司的电脑不能安装任何软件,所以无法安装php运行环境,需要找到一个绿色的php运行环境来执行php脚本
php具体代码问题,网站有的php脚本填写表单的例子都比较简单,这个涉及到的输入项目特别的多,并且一直出错没成功过
具体解决方案:
关于运行环境问题,我之前使用的quickphp 这个绿色软件,直接就可以运行,但是我发现他只能运行简单的post函数,关于curl比较高级的函数是不支持的,所以关于如何让quickphp能加上extention 这个思路大概研究了2个小时,期间尝试了下载dll文件,下载curl源文件,下载php.ini 最后均失败告终,然后调整思路,换一个绿色软件,最后找到了http://laragon.org 这个软件,它只有10M 但是可以运行apache php mysql所有环境 并且带有php许多库文件 支持高级函数库,可以替代quickphp,但是简单的程序我还是建议试试quickphp应该真的很小,就这样我解决了在公司不能安装程序的电脑上运行php环境 并且支持php高级函数的问题
接下来是解决实际脚本问题
首先分析网站 http://jz.u8see.com/account/ 在输入消费信息的时候 往服务器传递的是什么参数
因为涉及到cookie 所以也要把cookie值给复制下
然后就网上找到了对应的脚本
从chrome的分析工具可以看到 浏览器发出请求给http://jz.u8see.com/myaccount/expense/new/
并且使用的是POST方法
请求的头包含了很多信息,以及cooki值,并且表单信息也包含了很多

查看更多精彩图片

查看更多精彩图片

查看更多精彩图片
$url=”http://jz.u8see.com/myaccount/expense/new/”;
$url_cookie=’yourcookie’;
$headers = array();
$headers[] = ‘Content-Type: application/x-www-form-urlencoded’;
$post_data1 = array(
       “date” =>’2020-04-01’,
        “feetitle” => ‘xiangmu3’,
        “feenum” => 122,
        “feekindname” => ‘饮食’,
        “feekind” => 1
        );
$post_data1= http_build_query($post_data1);
$ch =curl_init();
//set post and header data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIE,$url_cookie);
//curl_setopt($ch,CURLOPT_POST,true);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data1); //$data是每个接口的json字符串
 //set post and header data
$content = curl_exec($ch);
查看更多精彩图片
以上是完整正确的代码
这里要说的是容易出错的地方也是花了4个多小时才明白的地方
第一点,post参数需要是字符串不能是数组
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data1)
这个函数的变量参数需要是字符串,不能是数组,所以我们如果是有数组需要使用
$post_data1= http_build_query($post_data1);
这个函数对数组进行urlencode编码
第2点在post的数组中直接使用中文,http_build_query能处理中文,不要使用已经encode的中文编码
这个问题比较隐蔽, 我之前在数组里面写 “feekindname” => ‘饮食’, 使用的是 “feekindname” => ‘%E9%A5%AE%E9%A3%9F’,
但是经过http_build_query函数后%这个字符会变成%25 然后整个参数就不再是饮食, 儿饮食这个参数是系统设定好的,你传回去不是这个值 就一定会出错,这个问题是我对所有字符串进行1 1比对才知道的
方法就是 复制下来chrome里面传递的所有的参数的 urlencode形式,然后再使用http_build_query对我们的参数进行编码
最后才知道这个坑
第3个问题就是因为我有2个账户进行测试,在a账户的cookie信息传递b账户的分类名称是不正确的, 因为我a账户可能不存在这个b账户的分类名,这个问题也是后来自己想通的, 所以还是需要对所有参数进行一一比对才知道问题
最后终结下 走过的弯路
使用php的curl进行post,变量需要是字符串,不能是数组,数组使用http_build_query变化,数组里面有中文的不要自作聪明先encode
项目背景
有一个记账的网站,用来每天记录一些消费数据,这些数据其实是从支付宝后台下载后经过简单的整理
可以再输入到记账网站。
希望通过php脚本来实现填写表单的动作,完成对大量数据填写表单的自动处理
查看更多精彩图片
目前的问题:
运行环境问题,公司的电脑不能安装任何软件,所以无法安装php运行环境,需要找到一个绿色的php运行环境来执行php脚本
php具体代码问题,网站有的php脚本填写表单的例子都比较简单,这个涉及到的输入项目特别的多,并且一直出错没成功过
具体解决方案:
关于运行环境问题,我之前使用的quickphp 这个绿色软件,直接就可以运行,但是我发现他只能运行简单的post函数,关于curl比较高级的函数是不支持的,所以关于如何让quickphp能加上extention 这个思路大概研究了2个小时,期间尝试了下载dll文件,下载curl源文件,下载php.ini 最后均失败告终,然后调整思路,换一个绿色软件,最后找到了http://laragon.org 这个软件,它只有10M 但是可以运行apache php mysql所有环境 并且带有php许多库文件 支持高级函数库,可以替代quickphp,但是简单的程序我还是建议试试quickphp应该真的很小,就这样我解决了在公司不能安装程序的电脑上运行php环境 并且支持php高级函数的问题
接下来是解决实际脚本问题
首先分析网站 http://jz.u8see.com/account/ 在输入消费信息的时候 往服务器传递的是什么参数
因为涉及到cookie 所以也要把cookie值给复制下
然后就网上找到了对应的脚本
从chrome的分析工具可以看到 浏览器发出请求给http://jz.u8see.com/myaccount/expense/new/
并且使用的是POST方法
请求的头包含了很多信息,以及cooki值,并且表单信息也包含了很多

查看更多精彩图片

查看更多精彩图片

查看更多精彩图片
$url=”http://jz.u8see.com/myaccount/expense/new/”;
$url_cookie=’yourcookie’;
$headers = array();
$headers[] = ‘Content-Type: application/x-www-form-urlencoded’;
$post_data1 = array(
       “date” =>’2020-04-01’,
        “feetitle” => ‘xiangmu3’,
        “feenum” => 122,
        “feekindname” => ‘饮食’,
        “feekind” => 1
        );
$post_data1= http_build_query($post_data1);
$ch =curl_init();
//set post and header data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIE,$url_cookie);
//curl_setopt($ch,CURLOPT_POST,true);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data1); //$data是每个接口的json字符串
 //set post and header data
$content = curl_exec($ch);
查看更多精彩图片
以上是完整正确的代码
这里要说的是容易出错的地方也是花了4个多小时才明白的地方
第一点,post参数需要是字符串不能是数组
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data1)
这个函数的变量参数需要是字符串,不能是数组,所以我们如果是有数组需要使用
$post_data1= http_build_query($post_data1);
这个函数对数组进行urlencode编码
第2点在post的数组中直接使用中文,http_build_query能处理中文,不要使用已经encode的中文编码
这个问题比较隐蔽, 我之前在数组里面写 “feekindname” => ‘饮食’, 使用的是 “feekindname” => ‘%E9%A5%AE%E9%A3%9F’,
但是经过http_build_query函数后%这个字符会变成%25 然后整个参数就不再是饮食, 儿饮食这个参数是系统设定好的,你传回去不是这个值 就一定会出错,这个问题是我对所有字符串进行1 1比对才知道的
方法就是 复制下来chrome里面传递的所有的参数的 urlencode形式,然后再使用http_build_query对我们的参数进行编码
最后才知道这个坑
第3个问题就是因为我有2个账户进行测试,在a账户的cookie信息传递b账户的分类名称是不正确的, 因为我a账户可能不存在这个b账户的分类名,这个问题也是后来自己想通的, 所以还是需要对所有参数进行一一比对才知道问题
最后终结下 走过的弯路
使用php的curl进行post,变量需要是字符串,不能是数组,数组使用http_build_query变化,数组里面有中文的不要自作聪明先encode