监控多条微信公众号链接阅读量,并可视化--模拟鼠标键盘

时间:2020-07-24 15:58:58   收藏:0   阅读:135
  1 from time import sleep
  2 import random,pyperclip,os
  3 import pyautogui
  4 from openpyxl import load_workbook
  5 import datetime
  6 import tkinter as tk
  7 
  8 path = os.getcwd()+\\URL链接.xlsx
  9 wb = load_workbook(path)
 10 ws = wb.worksheets[0]
 11 
 12 sleep(1)
 13 pyautogui.FAILSAFE = True
 14 
 15 width, height = pyautogui.size()
 16 print(width,height)
 17 
 18 cur_x, cur_y = pyautogui.position()
 19 print(cur_x,cur_y)
 20 
 21 def opation():
 22     def control(url,i,m):
 23         pyautogui.click(x = 85, y = 1060, duration=2)#移动鼠标任务栏微信
 24         pyautogui.click()#当前位置点击
 25         sleep(1)
 26         pyautogui.click(x=1063, y=744, duration=2)  # 移动鼠标输入框
 27         pyautogui.click()  # 当前位置点击
 28 
 29         pyautogui.typewrite(url, interval=0.25)  # 输入文本
 30         pyautogui.press(space)
 31         sleep(1)
 32         pyautogui.press(enter)
 33         # pyautogui.click(x=792, y=569, duration=2)  # 移动鼠标发送
 34         # pyautogui.click()  # 当前位置点击
 35         sleep(1)
 36         pyautogui.click(x=1108, y=626, duration=2)  # 移动鼠标点击链接
 37         pyautogui.click()  # 当前位置点击
 38 
 39         sleep(2)
 40         pyautogui.click(x = 1258, y = 300, duration=2)#移动鼠标文章空白位置
 41         pyautogui.click()#当前位置点击
 42 
 43         sleep(random.randint(3,6))
 44         pyautogui.hotkey(ctrl, a) # 组合按键(Ctrl+A)#全选
 45         sleep(1)
 46         pyautogui.hotkey(ctrl, c) # 组合按键(Ctrl+C)#复制
 47         sleep(1)
 48         text = pyperclip.paste()
 49         # print(text)
 50         if "阅读 "in text:
 51             index = text.index("阅读 ")
 52             click = text[index:]
 53             for kw in click.split("\n"):
 54                 if "阅读 " in kw:
 55                     print("阅读:", kw.replace("阅读", "").strip())
 56                     # reads.append(kw.replace("阅读", "").strip())
 57                     ws.cell(i+1,3+m).value = kw.replace("阅读", "").strip()
 58                 elif "在看" in kw:
 59                     print("在看:", kw.replace("在看", "").strip())
 60                     sleep(1)
 61         pyautogui.click(x=1260, y=150, duration=2)  # 移动鼠标"关闭"位置
 62         pyautogui.click()  # 当前位置点击            #关闭
 63         # print(text)8CAA
 64         wb.save(path)
 65 
 66     for m in range(int(e1.get())):
 67         now_time = datetime.datetime.now().strftime(%H:%M:%S)  # %Y-%m-%d %H:%M:%S
 68         ws.cell(1,3+m).value =now_time#监控链接的时间保存
 69         for i in range(1,ws.max_row):
 70             # print(ws.cell(i+1,2).value)
 71             # if len(ws.cell(i+1,2).value):
 72             control(ws.cell(i+1,2).value,i,m)
 73 
 74 
 75     #删除原来的所有图片文件
 76     file_names = os.listdir(os.getcwd() + \\img\\)
 77     for file_name in file_names:
 78         os.remove(os.getcwd() + \\img\\ + file_name)
 79     #可视化
 80     import matplotlib.pyplot as plt
 81     x_time = []
 82     for i in range(3, ws.max_column + 1):
 83         x_time.append(ws.cell(1, i).value)
 84     print(x_time)
 85     for i in range(1, ws.max_row):
 86         y_read = []
 87         for j in range(3, ws.max_column + 1):
 88             y_read.append(ws.cell(i + 1, j).value)
 89         plt.plot(x_time, y_read)
 90         plt.title(ws.cell(i + 1, 2).value)
 91         plt.savefig(os.getcwd() + \\img\\ + str(i) + .jpg)
 92         plt.show()
 93 
 94     l2 = tk.Label(win, text=监控完成,画图已保存)
 95     l2.pack()
 96 
 97 if __name__ == __main__:
 98     win = tk.Tk()
 99     win.title(监控微信文章阅读量)
100     win.geometry(300x400)
101     l1 =tk.Label(win,text=输入需要监控的多少个时间间隔:)
102     l1.pack()
103     e1 = tk.Entry(win,show=None)
104     e1.pack()
105 #     l2 = tk.Label(win, text=‘输入间隔的时长:(分钟)‘)
106 #     l2.pack()
107 #     e2 = tk.Entry(win, show=None)
108 #     e2.pack()
109 #
110     b = tk.Button(win,text=开始监控,width=12,height=1,command=opation)
111     b.pack()
112 
113     win.mainloop()

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!