一. 痛点
运维侠小白有下面烦恼,听说deepseek可以帮助提升学习python的效率,可是deepseek给的代码也报错,怎么办?
deepseek生成的代码也有可能报错,例如:
⏰执行报错:由提示得知,是少导入需要的模块,但是补全,还是报错,这就是deepseek的局限性。需要继续发问,才能解决。
多尝试,困难才会被克服
学习就像追妹子,你只能看到背影,但只要坚持日积月累的付出,迟早她整个人属于你❤。
二.基础:准备工作
⚠️避免报错:
- 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
安装 python-selenium模块
💻 代码:在命令行终端执行
# 安装必要库(命令行执行)
# pip install selenium pyautogui
三.进阶:常用方法详解
⚠️避免报错:
- 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
- 注意,pyautogui只支持英文,如有其他语言需要,使用pyperclip复制、粘贴
(1)如何实现定时点击屏幕功能?
📦手动操作鼠标点击效率低,且无法应对需要持续数小时的网课任务。
直接使用固定坐标点击可能导致位置偏移。
💻 代码:
import pyautogui
import time
click_x, click_y = 798, 590 # 屏幕中心坐标(根据分辨率调整)
# 鼠标控制操作
pyautogui.click(click_x, click_y)
如图:将视频播放页面屏幕放大,鼠标会自动点击播放按钮
(2)如何识别按钮自动点击?
✅ 为什么要用另一种方式?按钮位置可能因窗口大小变化偏移,硬编码坐标易失效。图像识别可精准定位按钮位置。
💻 代码:需要事先将播放按钮图片保存在代码同一目录下
import pyautogui
def click_image(image_path):
try:
pos = pyautogui.locateCenterOnScreen(image_path, confidence=0.9)
if pos: pyautogui.click(pos)
except: pass
# 示例:识别"播放按钮.png"并点击
click_image("play_button.png")
如图:两种方法能实现相同效果,但是第二种,更准确不容易报错。
(3)如何实现自动切换章节?
📦原因分析
网课需手动切换下一集,可通过滚动+图像识别实现自动化。
💻 代码:
import pyautogui
import time
def click_image(image_path):
try:
pos = pyautogui.locateCenterOnScreen(image_path, confidence=0.9)
if pos: pyautogui.click(pos)
except: pass
def next_chapter():
pyautogui.scroll(-500) # 向下滚动
time.sleep(1)
# 识别"下一章"按钮并点击
click_image("next_chapter.png")
# 主循环中调用
next_chapter()
如图:保存图片后执行代码就会自动点击下一章。
(4)如何防止被检测为机器人?
💻 代码:
import pyautogui
import time
import random
def anti_detection():
# 随机移动鼠标
x = random.randint(0, 1920)
y = random.randint(0, 1080)
pyautogui.moveTo(x, y, duration=0.5)
# 随机等待
time.sleep(random.uniform(1, 5))
# 在主循环中调用
anti_detection()
如图:
(5)自动输入文字
💻 代码:
import pyautogui as pg
import pyperclip
import time
txt = "peek"
for i in range(5):
pg.typewrite(txt)
time.sleep(2)
如图:将光标移到微信消息框
四.实战案例集锦:
自动切换章节并答题
💻 代码:需要手动确定章节列表和选项坐标,并修正代码
import pyautogui
import time
# 切换章节
def switch_chapter():
pyautogui.click(x=200, y=300) # 章节列表坐标
time.sleep(2)
pyautogui.scroll(-500) # 滚动到下一章节
time.sleep(1)
# 模拟选择题答题
def answer_question():
pyautogui.click(x=500, y=600) # 第一题选项
pyautogui.press('a') # 假设选A
pyautogui.hotkey('ctrl', 's') # 保存答案
for _ in range(5): # 处理5个章节
switch_chapter()
answer_question()
📒避坑指南:为方便演示,简化了,实际开发中可能需要复杂的请求。
💡有其他需求在评论区告诉我,下期教你用Python搞定!