zoukankan      html  css  js  c++  java
  • 【Python】博客信息爬取-微信消息自动发送

    1、环境安装

    python -m pip install --upgrade pip
    
    pip install bs4
    
    pip install wxpy

    pip install lxml

    2、博客爬取及发送

    from bs4 import BeautifulSoup
    from threading import Timer
    import requests
    import traceback
    from wxpy import *
    
    
    url = ''
    
    nIndex = 6
    my_groups = None
    
    def getMsg(nIndex):
        # 获得网址源码
        html = requests.get(url).content
        soup = BeautifulSoup(html, 'lxml') 
    
        # print('开始抓取')
        # title = soup.title.string
        # print(title)
    
        # areaall = soup.find(id='sina_keyword_ad_area2').children
        areaall = soup.select('#sina_keyword_ad_area2 p')
        # print(areaall)
        iCount = len(areaall)
        # print(iCount)
    
        # print(nIndex)
        msg = ""
        if iCount < nIndex:
            return msg,0
        else:        
            msg = areaall[iCount - 1]
            msg = msg.get_text()
            # print(msg)
            return msg,iCount
    
    msgTemp = ''
    nNullMsg = 0
    
    def auto_send():
        try:
            global nIndex
            global my_groups
            global msgTemp
            global nNullMsg
            msgContent,nIndexMsg = getMsg(nIndex)
            msgContent = str(msgContent).strip()
            # print(nIndexMsg)
            # nIndex += 1
            # print(msgContent)
            if len(msgContent) != 0 :
                # print(str(nIndex) + ":	" + msgContent)
                # return 
                if msgContent != msgTemp :              
                    if my_groups != None and len(my_groups) > 0 :
                        print("发送消息:" + msgContent)
                        my_groups[0].send(msgContent)
                        msgTemp = msgContent
                else:
                    print('消息已发送')
            else:
                nNullMsg += 1
                print("没有新消息")
                if nNullMsg == 20 :
                    print("恭喜发财,今日推送完毕")
                    return
    
            
            # # 每隔86400秒(1天),发送1次
            t = Timer(3, auto_send)
            t.start()
    
        except  Exception as e:
            print(e)
            # 你的微信昵称,注意这里不是备注,也不是微信帐号
            my_friend = bot.friends().search('NetUML')[0]
            my_friend.send(u"报告老板,今日份的信息发送失败了!")
    
    
    
    if __name__ == "__main__":
    
    
        # 初始化机器人,扫码登陆微信,适用于Windows系统
        # 初始化一个机器人对象
        bot = Bot(cache_path=True)
    
        my_groups = bot.groups().search('广告技术')    
    
        for group in my_groups:
            print(group)   
    
        # # Linux系统,执行登陆请调用下面的这句
        # bot = Bot(console_qr=2, cache_path="botoo.pkl")
    
        # 调用函数进行消息发送
        auto_send()
  • 相关阅读:
    jsp四个域对象
    java,qq邮箱发邮件工具类(需要部分修改)
    Java使用qq邮箱发邮件实现
    JavaScript 高级
    JavaScript基础
    JQuery 高级
    JQuery 基础
    团队最后一次作业:总结
    C++多态
    结对编程
  • 原文地址:https://www.cnblogs.com/defineconst/p/10657504.html
Copyright © 2011-2022 走看看