前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现抓取web和xcx数据推送到wx和邮件

python实现抓取web和xcx数据推送到wx和邮件

作者头像
用户6367961
发布2020-09-24 15:34:54
1.2K0
发布2020-09-24 15:34:54
举报
文章被收录于专栏:自学测试之道自学测试之道

实现目的

每天定时抓取web端个小程序端数据,退送wx指定人/群或者邮件。本次通过邮件和wx,推送数据到邮箱或wx指定人

实现代码

代码语言:javascript
复制
#coding:UTF-8
"""
--------------------------------------
   File Name:Get_data_put_wx.py
   Author :    xzhong
   Date:2020-09-08 12:23
   E-mail: 3227456102@qq.com
--------------------------------------
"""
import requests
import json
import datetime
from wxpy import *
import itchat
from threading import Timer

def get_token():
    """获取token值"""
    url = "https://xxxxxxxxxx/xxx/xxxx"
    header = {"OpenPlatformAuth":"xxxxxtor"}
    try:
        result = requests.post(url=url, headers=header)
        token = result.json()['data']['token']
        # print(token)
        return token
    except:
        print("获取token失败")

def get_data():
    """查询并获取统计数据"""
    now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    url = 'https://xxxxx/xx/xxxx/ryinfoStatistic'
    data = {
        "type":0,
        "startDate":"2020-02-12 00:00:00",
        # "endDate":"2020-09-10 23:59:59"
        "endDate": now_time
    }
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
        "wmRequest": "1",
        "Content-Type": "application/json",
        "Authorization": get_token()
    }
    try:
        req = requests.post(url=url, data=json.dumps(data), headers=headers)
        lsit_data = req.json()['data']     #  获取data列表
        data = lsit_data[0]
        allResultCount = data.get('allResultCount')   # 取数据
        replyResultCount = data.get('replyResultCount')
        return ("群众问诊咨询人次为: %s" % allResultCount), ("有效回应人次为: %s" % replyResultCount)
    except:
        print("获取统计数据失败!")

# def send_semail():
#     """推送到邮件"""
#     import yagmail
#     args = {
#         "user": "3227456102@qq.com",  # 发邮件账号
#         "password": "xxxxxxxxxxxxxxxxf",  # 发件账号对应的密码(QQ使用的是授权码,而不是QQ密码)
#         "host": "smtp.qq.com",  # 邮件账号的SMTP服务器
#         "port": "465"  # SMTP服务器端口 465
#     }
#     # 收件人列表
#     emailList = ["3227456102@qq.com"]
#     # 实例化发送者
#     email = yagmail.SMTP(**args)
#     contens = get_data()
#     # 调用消息发送函数,参数分别是:to=收件人列表,subject 邮件标题,contents 邮件正文,cc 邮件抄送人
#     email.send(to=emailList, subject="数据统计", contents=str(contens))


#  推送到wx
bot = Bot(cache_path=True)

def send_news():
    try:
        # 你朋友的wx名称,不是备注,也不是wx帐号。
        my_friend = bot.friends().search(u'xx科技')[0]
        data = ','.join(get_data())
        print(data)
        content = "xxx医院,正常,2月12日至今,网上问诊咨询服务的浏览量为:人次" + ';' + str(data) + '.'
        # my_friend.send(u"正在轰炸你的wx!")
        my_friend.send(content)
        # 每86400秒(1天),发送1次,不用linux的定时任务是因为每次登陆都需要扫描二维码登陆,很麻烦的一件事,就让他一直挂着吧
        # t = Timer(6000000, send_news)
        # t.start()
    except:
        # 你的wx名称,不是wx帐号。
        my_friend = bot.friends().search('zhong')[0]
        my_friend.send(u"今天消息发送失败了")


if __name__ == "__main__":
    # get_token()
    # get_data()
    # send_semail()
    send_news()

实践结果

wx推送结果

邮箱推送结果

结合jenkins,实现定时推送

jenkins配置如下

注意点:

1、推送wx消息,itchat,当前新注册的wx用户不能进行推送;

2、使用wx推送时,扫码,其实就是登陆网页版wx,必须保证wx不下线才可以推送消息,个人感觉不是很友好。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
邮件推送
邮件推送(Simple Email Service,SES)是一款基于腾讯云端的平台化服务, 为企业提供安全稳定、简单快速、精准高效的营销、通知和事务邮件的推送服务。产品提供灵活的 IP 部署、电子邮件身份验证以及企业专属定制的启动计划,以保护发件人声誉,同时提供精准智能的数据分析。产品的服务范围覆盖200+国家/地区,可即时触达全球各地的邮箱地址。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档