靳闯博客 记录是一种习惯,分享是一种态度
  • 波浪
  • 波浪
  • 波浪
  • 波浪
脚本定时发送微博热搜关键词到微信企业号
发表于: | 分类: 技术积累 | 标签: Python Linux Shell | 评论:0 | 阅读: 288

shell脚本获取,python脚本发送。此篇文章需要有企业微信管理权限才能使用


1、企业微信(企业号)现在申请要企业验证,我申请的比较早当时不需要验证
2、crontab计划任务
3、python
4、个人微信加入企业中,个人微信关注企业号,然后把人员加入到部门,消息按部门发送


效果展示(因为微信API接口文本消息内容,最长不超过2048个字节,超过将截断)所以分四条发送

wb.jpg

url-utf8.py url编码解码脚本

#!/bin/python
# -*- coding: utf-8 -*-
import urllib
import sys
rawurl = str(sys.argv[1])
url = urllib.unquote(rawurl)
print url

num.txt 发送消息每条消息取多少行

1,12p
13,25p
26,37p
38,50p

wxweibo.py 发送文本内容到企业微信应用的脚本

#!/usr/bin/python
#_*_coding:utf-8 _*_
__author__ = 'lvnian'
 
import urllib,urllib2
import json
import sys
reload(sys)
sys.setdefaultencoding('utf8')
 
def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token
 
 
 
def senddata(access_token,user,content):
 
    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":user ,    #企业号中的用户帐号,我这里按部门发送的,所以这个参数填错没关系。
        "toparty":"3",    #企业号中的部门id
        "msgtype":"text",  #发送的消息类型。
        "agentid":"1000003", #企业号中应用的AgentId
        "text":{
            "content":content
           },
        "safe":"0"
        }
    send_data = json.dumps(send_values, ensure_ascii=False)
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)
 
if __name__ == '__main__':
    user = str(sys.argv[1])     #第一个参数(第一个和第二参数没实际作用,但不能为空)
    subject = str(sys.argv[2])  #第二个参数
    content = str(sys.argv[3])  #第三个参数(需要发送的消息内容)
    corpid =  '企业微信管理-我的企业-就可看到此id'   #CorpID是企业微信(原企业号)的标识
    corpsecret = '企业微信管理-应用管理-打开对应应用就可看到此参数'  #需要发送的应用Secret
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,content)

wxweibo.sh 执行脚本

#!/bin/bash
date=`date +%H:%M`

#下载热搜关键词前50页面并过滤热搜词和url
cd /tmp/weibo/ && wget -q https://s.weibo.com/top/summary/ 
grep "<a href=\"/weibo?" index.html|sed 's#^ *##;s/target="_blank"//'> /tmp/weibo/aa && cp aa ab

#对url编码解码并替换原来url
for i in `awk -F "[=|&]" '{print $3}' aa`
do
    wz="`python /tmp/weibo/url-utf8.py $i`"
    sed -i "s/$i/{$wz}/" ab
done

#删除和替换字符导出结果
sed 's/{//;s/}//;s#\/weibo#https://s.weibo.com#g;s/com/com\/weibo/g;s/#/%23/g;s/ //g;s/<a/<a /' ab >resou.txt


#分4次发送热搜词到公众号消息(1条消息限制最长2048个字节)
for i in `cat /tmp/weibo/num.txt`
do
    nub=`echo "$i"|sed 's/p//'|tr "," "-"`
    /bin/python /tmp/weibo/wxweibo.py 0 0 "[$date]微博热搜排名$nub关键词:
`sed -n $i /tmp/weibo/resou.txt`"
done

#删除临时文件
rm -rf index.html* aa ab 

wxweibo.sh 执行

sh /tmp/weibo/wxweibo.sh
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}

crontab 每小时0分定时发送

00 * * * * /tmp/weibo/wxweibo.sh

百度搜热也可以这样做,效果展示;因为百度链接长所以分5条消息发送

bd.jpg


商业转载请联系作者获得授权,非商业转载请注明出处,谢谢合作。


如果这篇文章帮助到了你,我感到十分荣幸!

或许你不想写点什么·但我依旧在这里

icon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.png2018new_aini_org.png2018new_baobao_thumb.png2018new_erha_org.png2018new_kuxiao_thumb.png2018new_yun_thumb.png2018new_hufen_thumb.png2018new_gui_org.png2018new_xiaoerbuyu_org.png2018new_heixian_thumb.png2018new_wabi_thumb.png2018new_tianping_thumb.png

站点地图 网站地图
豫ICP备17003270号-1 | Copyright © 2020 💖 靳闯博客
Typecho🍹Sgreen
TOP