MJJ论坛

 找回密码
 注册
楼主: yilin101

求监控网页变化 邮件通知的方法

[复制链接]
 楼主| 发表于 2017-6-16 10:02:02 | 显示全部楼层
Eric.c 发表于 2017-6-16 09:58
ignore_user_abort();  忽略关闭浏览器
set_time_limit(0);      永不超时

感谢 我试一下
发表于 2017-6-16 10:07:23 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-6-16 10:27:13 | 显示全部楼层


没事再撸一个性能版本给你
golang



  1. package main

  2. import (
  3.         "fmt"
  4.         "log"
  5.         "net/http"
  6.         "os"
  7.         "gopkg.in/gomail.v1"
  8.         "strconv"
  9.         "io/ioutil"
  10.         "strings"
  11.         "time"
  12. )

  13. var url = "网址"
  14. var file ="path.txt"
  15. //邮件内容修改sendmail函数

  16. func main() {

  17.         for   {
  18.                 resp, err := http.Get(url)
  19.                 if err != nil {
  20.                         fmt.Println(err)
  21.                         log.Fatal(err)
  22.                 }
  23.                 if resp.StatusCode == http.StatusOK {
  24.                         fmt.Println(resp.StatusCode)
  25.                 }
  26.                 defer resp.Body.Close()

  27.                 len:=resp.ContentLength
  28.                 lenstr:=strconv.FormatInt(len,10)


  29.                 if IsFile(file) == false {
  30.                         FilePutContent(file,lenstr)
  31.                         println("找不到"+file+"文件,开始初始化!如多次都是如此,检查目录有没写权限")
  32.                 }else{
  33.                         c,_ := FileGetContent(file)
  34.                         if !strings.EqualFold(c,lenstr){
  35.                                 sendmail()
  36.                                 FilePutContent(file,lenstr)
  37.                         }

  38.                 }


  39.                 time.Sleep(time.Minute*15)
  40.         }


  41. }





  42. func IsFile(file string) bool {
  43.         f, e := os.Stat(file)
  44.         if e != nil {
  45.                 return false
  46.         }
  47.         return !f.IsDir()
  48. }


  49. func FilePutContent(file string, content string) (int, error) {
  50.         fs, e := os.Create(file)
  51.         if e != nil {
  52.                 return 0, e
  53.         }
  54.         defer fs.Close()
  55.         return fs.WriteString(content)
  56. }

  57. func FileGetContent(file string) (string, error) {
  58.         if !IsFile(file) {
  59.                 return "", os.ErrNotExist
  60.         }
  61.         b, e := ioutil.ReadFile(file)
  62.         if e != nil {
  63.                 return "", e
  64.         }
  65.         return string(b), nil
  66. }


  67. func  sendmail()  {
  68.         msg := gomail.NewMessage()
  69.         msg.SetHeader("From", "发件人地址[email protected]")
  70.         msg.SetHeader("To", "收件人地址[email protected]")
  71.         msg.SetHeader("Subject", "邮件标题")
  72.         msg.SetBody("text/html", "邮件内容,支持HTML!")


  73.         // NewMailer参数:smtp地址,用户名,密码,端口
  74.         mailer := gomail.NewMailer("发件人的smtp地址:smtp.example.com", "用户名user", "密码123456", 25)
  75.         if err := mailer.Send(msg); err != nil {
  76.                 panic(err)
  77.         }
  78. }
复制代码
 楼主| 发表于 2017-6-16 10:30:30 | 显示全部楼层
Eric.c 发表于 2017-6-16 10:27
没事再撸一个性能版本给你
golang

这个就有点吊了 不会用
发表于 2017-6-16 10:47:57 | 显示全部楼层
Eric.c 发表于 2017-6-16 10:27
没事再撸一个性能版本给你
golang

怎么用这个,求说明
发表于 2017-6-16 10:52:49 | 显示全部楼层
本帖最后由 Eric.c 于 2017-6-16 10:54 编辑



按需修改后编译一下,进入文件所在目录,执行编译命令   go build

要linux用必须先安装linux 上的golang, 很简单,百度一下即可
大意是 下载包,解压后,设置下环境,即可。

ps:
记得编译之前先执行一次
go get gopkg.in/gomail.v1 ,安装smtp发送库
发表于 2017-6-16 11:11:18 | 显示全部楼层
哪里用这么麻烦? 一个软件全部搞定。

WebSite-Watcher
111.jpg (83.22 KB, 下载次数: 0)
 楼主| 发表于 2017-6-16 11:12:19 | 显示全部楼层
madacr 发表于 2017-6-16 11:11
哪里用这么麻烦? 一个软件全部搞定。

WebSite-Watcher

大哥 不想开电脑啊
发表于 2017-6-16 16:14:40 | 显示全部楼层
Eric.c大佬怎么被禁言了啊
发表于 2017-6-16 16:47:59 来自手机 | 显示全部楼层
意思是发现某个网页里面的“不可用”三个字吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|MJJ论坛

Copyright MJJ论坛 © 2022 All Rights Reserved.

快速回复 返回顶部 返回列表