python微信公众号自动化搜题

先看这篇来获取学习通中所有习题: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)  # 发送微信窗口的截图给文件传输助手

拿去人前显圣,不用谢。

猜你喜欢

转载自blog.csdn.net/Starry_error/article/details/124850412
今日推荐