python爬虫并向qq发送消息

几只程序猿被割了韭菜,于是写了个爬虫小程序,实时查看基金涨(跌)幅

import win32gui
import win32con
import win32clipboard as w
from bs4 import BeautifulSoup  # 网页解析,获取数据
import urllib.request, urllib.error  # 制定URL,获取网页数据
import time
import threading
import json

list = ['003834', '002251', '161725', '003095']



class QQMessageSend: 
    def send_message(self,msg): 
        # 窗口名字,就是备注名 
        name = "老韭菜"
        # 将测试消息复制到剪切板中 
        w.OpenClipboard() 
        w.EmptyClipboard() 
        w.SetClipboardData(win32con.CF_UNICODETEXT, msg) 
        w.CloseClipboard() 
        # 获取窗口句柄 
        handle = win32gui.FindWindow(None, name) 
        # 填充消息 
        win32gui.SendMessage(handle, 770, 0, 0) 
        # 回车发送消息 
        win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) 

    def main(self, msg):
        # 消息内容
        # 循环发送
        self.send_message(msg)


# 爬取网页
def getData(baseurl):

    return askURL(baseurl)


# 得到指定一个URL的网页内容
def askURL(url):
    head = {  # 模拟浏览器头部信息,向豆瓣服务器发送消息
        "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122  Safari / 537.36"
    }
    # 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器、浏览器(本质上是告诉浏览器,我们可以接收什么水平的文件内容)

    request = urllib.request.Request(url, headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8")
    except urllib.error.URLError as e:
        if hasattr(e, "code"):
            print(e.code)
        if hasattr(e, "reason"):
            print(e.reason)
    return html

def fun_timer():
    for i, val in enumerate(list):
        s = int(round(time.time() * 1000))
        baseurl = "http://fundgz.1234567.com.cn/js/" + val + ".js?rt=" + str(s)
        html = getData(baseurl)  # 保存获取到的网页源码
        soup = str(BeautifulSoup(html, "html.parser"))
        qq_message_send = QQMessageSend()
        s = soup[soup.find('{'): soup.find('}')+1]
        d = json.loads(s)
        s = d['name'] + ":涨幅:" + d['gszzl'] + "%"
        print(s)
        qq_message_send.main(s)
    print("爬取完毕!")
    global timer
    timer = threading.Timer(1800, fun_timer)
    timer.start()

# 当程序执行时
if __name__ == "__main__":
    # 调用函数
    timer = threading.Timer(1, fun_timer)
    timer.start()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值