1. 程式人生 > >測試基於Python將某網前10條資訊獲取並實現自動傳送QQ群

測試基於Python將某網前10條資訊獲取並實現自動傳送QQ群

1.準備工作

此次測試基於python3,需要安裝qqbot、bs4、requests庫。

qqbot專案地址:https://github.com/pandolia/qqbot.git

pip qqbot 
pip install bs4
pip install requests

#更改qqbot配置檔案

以下配置是為了通過郵件傳送授權二維碼完成授權操作。

 

2.程式碼部分

#coding:UTF-8
import qqbot
import requests
import bs4
import time

##SentQQ
class QQ(object):
    def __init__(self):
        self.qqnumber = '1234567890'
        self.message = '資訊自動推送功能test!!!'
        self.groupname = ['交流群']
        self.bot = qqbot._bot

    def sendMsgToGroup(self,msg,group,bot):
        for group in group:
            bg=bot.List('group', group)
            if bg is not None:
                bot.SendTo(bg[0],msg)

    def main(self):
        self.bot.Login(['-q', self.qqnumber])
        self.sendMsgToGroup(self.message,self.groupname,self.bot)

##爬取資料
class GetData(object):
    def __init__(self):
        self.rooturl = 'https://www.xxxx.com'
        self.url = self.rooturl + '/ah/20?lang=1'
        self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}

    def getdata(self):
        response = requests.get(self.url,headers=self.headers)
        if int(response.status_code) == 200:
            htmldata = bs4.BeautifulSoup(response.text,'html.parser')
            blognumber = 0
            result = "[%s] 技術文章推薦: \n \n" %(time.strftime('%Y-%m-%d',time.localtime(time.time())))
            for k in htmldata.find_all('a'):
                if blognumber <= 10:
                    try:
                        if k['title'] != '':
                            blogurl = self.rooturl + str(k['href'])
                            blogtitle = str(k['title'])
                            bloginfo = "%d.[%s] \n  %s \n" %(blognumber,blogtitle,blogurl)
                            result = result + bloginfo
                            blognumber += 1
                    except:
                        pass

        return result


if __name__ == '__main__':
    server = QQ()
    server.message = GetData().getdata()
    server.main()

3.新增計劃任務

00 07 * * * python3 /root/bin/autoqq.py

 

4.效果圖