基于WxPusher实现微信消息推送

        最近找到一个公众号(WxPusher消息推送平台),提供了api接口和开发文档,可以借助python程序实现每日的消息推送,通过发送post请求,用户只需要扫描二维码就能实现推送的功能,并且支持群发。详细如下:

        这里将每日的天气和一些文案信息爬取出来整合成字符串作为信息加入到待推送的信息中。

        1、将要爬取的天气等信息整理成字符并封装成函数作为返回值返回,方便后面调用。

#  获取信息
def get_info():




    url1 = ''   # 要爬取的天气预报网站(此处抹去)
    url2 = ''      # 文案网站(此处抹去)




    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) '
                            'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
    response2 = requests.get(url2, headers=header)  # 发送网络请求
    response2.encoding = 'utf-8'  # 编码
    html2 = etree.HTML(response2.text)  # 解析html字符串
    global number
    div_all2s = html2.xpath('.//div[@class="mbox fl"]//div[@class="content"]/p[{page}]//text()'.format(page=number))

    div_all2 = processing(div_all2s)

    copywritting = div_all2




    response1 = requests.get(url1,headers=header)                    # 发送网络请求
    response1.encoding = 'utf-8'                                    # 编码
    html1 = etree.HTML(response1.text)                               # 解析html字符串

    div_all1 = html1.xpath('//dl[@class="weather_info"]')
    for div in div_all1:
        names = div.xpath('.//a/@title')
        name = processing(names)
        areas = div.xpath('.//dd[@class="name"]//h1/text()')
        area = processing(areas)

        name = '今日' + name

        times=div.xpath('.//dd[@class="week"]/text()')
        time=processing(times)

        brief_times = time.split('日')[0]
        brief_time = processing(brief_times)


        Ts = div.xpath('.//dd[@class="weather"]//span//text()')
        T = processing(Ts)

        humid_1 = processing(div.xpath('.//dd[@class="shidu"]/b[1]//text()'))
        humid_2 = processing(div.xpath('.//dd[@class="shidu"]/b[2]//text()'))
        humid_3 = processing(div.xpath('.//dd[@class="shidu"]/b[3]//text()'))

        humid = humid_1 + '\n' + humid_2 + '\n' + humid_3
        air_qualitys = div.xpath('.//dd[@class="kongqi"]/h5/text()')
        air_quality = processing(air_qualitys)
        pms = div.xpath('.//dd[@class="kongqi"]/h6/text()')
        pm = processing(pms)

        suns =  div.xpath('.//dd[@class="kongqi"]/span/text()')
        sun = processing(suns)

        cartoon = """
                          へ  /|
                         /\7    ∠_/
                         / │   / /
                        │ Z _,< /   /`ヽ
                        │     ヽ   /  〉
                         Y     `  /  /
                        イ● 、 ●  ⊂⊃〈  /
                        ()  へ    | \〈
                         >ー 、_  ィ  │ //
                         / へ   / ノ<| \\
                         ヽ_ノ  (_/  │//
                         7       |/
                         >―r ̄ ̄`ー―_6"""
        
        weather_condition = (name + ': \n' +
        '时间: ' + time + '\n\n' + '温度: ' + T + '\n\n' + humid  + '\n' + air_quality + '\n'
        + pm + '\n' + sun + '\n\n' + cartoon)

        global summary
        summary = brief_time + '日' + area + ':' + '\n\n' + ' !  ' + T + '   !'  + '\n\n' + sun + '\n\n' + copywritting



        return (weather_condition)

        2、发送post请求,将要推送的信息传递出去。


url='http://wxpusher.zjiecode.com/api/send/message'

headers = {"content-type":"application/json"}

dat={
  "appToken":"AT_7zKfBalcmZEPARaha0guEr5crjsrVOZh",
  "content":get_info(),  # 调用函数,获取推送的内容
  "summary":summary,#消息摘要,显示在微信聊天页面或者模版消息卡片上,限制长度100,可以不传,不传默认截取content前面的内容。
  "contentType":1,#内容类型 1表示文字  2表示html(只发送body标签内部的数据即可,不包括body标签) 3表示markdown
  "topicIds":[
      7826     #发送目标的topicId,是一个数组!!!,也就是群发,使用uids单发的时候, 可以不传。
  ],
  "uids":[#'UID_GOgrMd1Ad1FEEpRdbY41jl9PGY1x','UID_hBw1gAtLkne1INAQjyy2qS9iyO8o'
  ],
  "url":"https://www.csdn.net/", #原文链接,可选参数
  #"verifyPay": false #是否验证订阅时间,true表示只推送给付费订阅用户,false表示推送的时候,不验证付费,不验证用户订阅到期时间,用户订阅过期了,也能收到。
}
#post请求,发送的数据必须放在字典中,通过data参数传递出去
resp=requests.post(url,json=dat,headers=headers)

          3、实现效果:

       

                       

 

        这里附上WxPusher的官方开发文档,上面有详细操作,有兴趣的小伙伴可以尝试,创作不易,希望大家多多支持。 

WxPusher 开发文档:https://wxpusher.zjiecode.com/docs/#/
 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值