先看这篇来获取学习通中所有习题:python爬虫笔记(学习T)_星空的你的博客-CSDN博客
上一篇我们已经获取了学习通中所有的章节练习题,这篇讲解如何进行自动化搜索,一般的搜题方式有两种,一种是在线网站搜题用selenium完成自动化,但是我发现这种方式搜题结果不是特别准确,还有就是用客户端和wx微公众号了,说实话这两种方式相比selenium要复杂的多,倒不是技术有多复杂,而是资源难找,难以学习,就比如操作wx的库itchat,wxpy都凉凉了,所以我现在在用的是一种偏向于本地自动化的方式操作wx
首先安装所需要的库 第一个是操作wx的库 第二个是本地自动化操作鼠标键盘的库
pip install wxauto
pip install pyautogui
运行前请先确保微信客户端处于打开状态
微信公众号可以选你自己喜欢的,这个公众号也不是我的,而且查题到一定数量后居然还要钱。。
毛概题库运行顶部链接文章中代码可以获取
代码如下:
import os
from wxauto import *
import pyautogui
import time
# 获取鼠标位置
def get_mouse_positon():
time.sleep(2) # 准备时间
print('开始获取鼠标位置')
try:
for i in range(50):#输出次数
# Get and print the mouse coordinates.
x, y = pyautogui.position()
positionStr = '鼠标坐标点(X,Y)为:{},{}'.format(str(x).rjust(4), str(y).rjust(4))
pix = pyautogui.screenshot().getpixel((x, y)) # 获取鼠标所在屏幕点的RGB颜色
positionStr += ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(
3) + ')'
print(positionStr)
time.sleep(0.5) # 停顿时间
except:
print('获取鼠标位置失败')
'''
联想R7000
1920X1080
125%缩放
wx默认位置初始坐标
三个点坐标为1504, 168
发消息坐标为1525, 210
'''
#如果没有点击正确位置用下面的方法,获取一下正确位置坐标
#get_mouse_positon()
pyautogui.hotkey('ctrl', 'alt', 'w')
#获取当前微信客户端
wx = WeChat()
#搜索公众号名称
wx.Search('变式杂记')
# 进入聊天界面
pyautogui.moveTo(1504, 168, duration=0.25) # 移动到 三个点 duration执行时间
pyautogui.click() #点击一下
pyautogui.click(x=1525, y=210, duration=0.25)# 也可以联合起来
#获取文件中的内容
Dir=os.listdir('毛概题库')
for dir in Dir:
with open(f'毛概题库/{dir}','r',encoding='utf8') as f:
lines=f.readlines()
for line in lines:
# 给公众号发消息
wx.SendMsg(line)
time.sleep(0.5)
#输出当前聊天窗口聊天消息
# msgs = wx.GetAllMessage
# for msg in msgs:
# print('%s : %s'%(msg[0], msg[1]))
#
#
# # 获取会话列表
# msg = '你好~'
#
# wx.ChatWith(who) # 打开`文件传输助手`聊天窗口
# wx.SendMsg(msg) # 向`文件传输助手`发送消息:你好~
# ## 获取更多聊天记录
# wx.LoadMoreMessage()
# msgs = wx.GetAllMessage
# for msg in msgs:
# print('%s : %s'%(msg[0], msg[1]))
# # 向某人发送消息(以`文件传输助手`为例)
# msg = '你好~'
# who = '变式杂记'
# wx.ChatWith(who) # 打开`文件传输助手`聊天窗口
# wx.SendMsg(msg) # 向`文件传输助手`发送消息:你好~
# # 向某人发送文件(以`文件传输助手`为例,发送三个不同类型文件)
# file1 = 'D:/test/wxauto.py'
# file2 = 'D:/test/pic.png'
# file3 = 'D:/test/files.rar'
# who = '文件传输助手'
# wx.ChatWith(who) # 打开`文件传输助手`聊天窗口
# wx.SendFiles(file1, file2, file3) # 向`文件传输助手`发送上述三个文件
# # 注:为保证发送文件稳定性,首次发送文件可能花费时间较长,后续调用会缩短发送时间
# # 向某人发送程序截图(以`文件传输助手`为例,发送微信截图)
# name = '微信'
# classname = 'WeChatMainWndForPC'
# wx.ChatWith(who) # 打开`文件传输助手`聊天窗口
# wx.SendScreenshot(name, classname) # 发送微信窗口的截图给文件传输助手
拿去人前显圣,不用谢。