【上班摸鱼】聊天机器人定时发送微博热搜

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【上班摸鱼】聊天机器人定时发送微博热搜脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【上班摸鱼】聊天机器人定时发送微博实时热搜新闻

序言

办公室总有一些人工作做的好,资讯掌握也不少,且总能第一时间获取最新资讯,某房地产公司基金快爆雷了,某男星劈腿女星出轨。

【上班摸鱼】聊天机器人定时发送微博热搜

作为搬砖能手的我们,也想实时关注国家大事,但又不想下载各种app以及打开某个页面。有没有一款功能能定时推送微博各种资讯以及各种新闻呢,且还能各种扩展,最主要是能独立修改配置。终于屌丝的我在周末不断尝试后,终于使用爬虫+ci定时触发的方式搞定了,用起来还不错。有兴趣同学可以尝试下 效果如下:

【上班摸鱼】聊天机器人定时发送微博热搜

接下来给大家讲讲如何实现。

实现框架

该功能根据功能拆分,分为三个步骤,分别为python微博爬虫以及数据处理、企业微信机器人数据发送,CI定时构建出发

  • 微博爬虫 1、python获取10条微博最新资讯 2、bs4包对最新的数据网页进行解析 3、过滤当前微博推广的热搜 4、构建适企业微信机器人markdown数据
  • 企业微信机器人 1、实现根据企业微信机器人接口进行请求方法
  • CI定时触发 1、使用coding提供的免费ci构建执行python脚本 2、设置该构建job的定时任务

具体实现

python实现脚本

  • 数据解析以及组装 根据微博首页地址“https://s.weibo.COM/top/summary?cate=realtimehot” ,分析对我们有用的数据字段,我们可以根据标签以及属性的方式找到相关的关键字,同时定义一条微博结构应该包含如下几个部分: 1、ranking 排行 2、message 具体的消息内容 3、url 该条消息的超链接地址 4、star 点赞数 剩下的就可以通过该方式获取微博数据,具体的代码实现如下:

    【上班摸鱼】聊天机器人定时发送微博热搜

    【上班摸鱼】聊天机器人定时发送微博热搜

    def get_hot_message_From_weibo(self,message_num=10):
        '''
        从https://s.weibo.com/top/summary?cate=realtimehot获取热搜,热搜一小时更新一次
        :return: 返回字典类型,{tITle:标题,girlurl:图片地址
        '''
        self.url = "https://s.weibo.com/top/summary?cate=realtimehot"
        htMLtext=self.get(self.url).text
        soup = BeautifulSoup(htmltext,'html.parser')
        hothtmls=soup.findAll(name="tr", attrs={"class" :""})
        hotsum = len(hothtmls)
        #传入长度超过热搜长度,返回为空
        hotmessages = []
        if message_num > hotsum:
            return dict()
        for hothtml in hothtmls:
            if hothtml.find(name='td',attrs={"class" :"td-01"}).text.strip()=='' or not hothtml.find(name='td',attrs={"class" :"td-01"}).text.strip().isdigit():
                continue
            hotmessage = dict()
            hotmessage['ranking'] = hothtml.find(name='td', attrs={"class": "td-01"}).text
            hotmessage['message'] = hothtml.find(name='a').text
            hotmessage['url'] = 'https://s.weibo.com/'+hothtml.find(name='a').attrs['href']
            hotmessage['star'] = hothtml.find(name='span').text
            hotmessages.apPEnd(hotmessage)
            #热点消息支持10条
            message_num-=1
            if message_num <1:
                break
        return hotmessages
  • 数据转markdown格式 我先尝试在微信机器人修改好markdown的格式,该部分需要大家自由发挥格式,再把相应的格式转换为python脚本。具体的脚本参考如下:

    【上班摸鱼】聊天机器人定时发送微博热搜

    def deal_message_to_markdown(self,hotmessages=None):

        '''
        处理各种途径消息
        :param messages:
        :return:
        '''
        message='### 实时热搜rn
<font color="comment">时间:%s</font>rn'%time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        for hotmessage in hotmessages:
            message+='> [%s.%s](%s) <font color="warning">%s</font>rn'%(hotmessage['ranking'],
                                             hotmessage['message'],
                                             hotmessage['url'],
                                             hotmessage['star'])
        return message

企业微信发送

内容比较简单,直接参考代码

    def send_wechart(self,wechart_url,msg=None):
        '''
        企业微信发送图片资消息
        :param wechart_url: 企业微信机器人地址
        :param msg: 发送资源消息
        :return:
        '''
        header = {
            'Content-type': 'application/json'
        }
        data = {
            "msgtype": "markdown",
            "markdown": {
                "content": msg
            }
        }
        respone = requests.post(url=wechart_url, headers=header, json=data)
        return respone

定时执行脚本CI

  • 进入coding平台(https://coding.net/) ,创建项目
  • 上传代码到git仓库

    【上班摸鱼】聊天机器人定时发送微博热搜

  • 进入持续集成平台,创建ci job

    【上班摸鱼】聊天机器人定时发送微博热搜

  • 复制pipline脚本到构建任务

    【上班摸鱼】聊天机器人定时发送微博热搜

  • 设置定时构建

    【上班摸鱼】聊天机器人定时发送微博热搜

效果如下:

【上班摸鱼】聊天机器人定时发送微博热搜

脚本宝典总结

以上是脚本宝典为你收集整理的【上班摸鱼】聊天机器人定时发送微博热搜全部内容,希望文章能够帮你解决【上班摸鱼】聊天机器人定时发送微博热搜所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。