一. 痛点
运维侠小白有下面烦恼,听说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)
如图:将光标移到微信消息框
四.实战案例集锦:
(1)自动点赞机器人
⏰提醒:请不要用于非法用途,只是为了趣味性展示案例。
💻 代码:需要手动确定点赞按钮位置坐标,并修正代码
import pyautogui
import time
# 先让用户准备(像跳伞前检查装备)
time.sleep(5)
# 核心代码三连击(比猫咪踩键盘还简单)
pyautogui.moveTo(1190, 391) # 坐标要改成你的点赞按钮位置
pyautogui.click() # 点击动作比双击门把手还轻快
print("已送出第1个赞!")
# 完成任务后提示(像外卖小哥的温馨短信)
pyautogui.alert(text='点赞完成啦!', title='机器人小助手')
如图:
(2)智能收藏小秘书
⏰提醒:请不要用于非法用途,只是为了趣味性展示案例。
💻 代码:不同网站坐标不一样,需要手动确定点赞按钮位置坐标,并修正代码
import pyautogui
import time
from random import uniform
def safe_click(x, y):
# 人类轨迹模拟器(像帕金森画家)
pyautogui.moveTo(x, y, duration=uniform(0.3, 0.7))
pyautogui.click(x+uniform(-3,3), y+uniform(-3,3)) # 随机偏移点击
# ======== 第一阶段:触发收藏 ========
time.sleep(2)
safe_click(1100, 296) # 点击收藏按钮
print("已发射收藏请求!")
# ======== 第二阶段:选择路径 ========
time.sleep(1.5) # 等待菜单加载(像等电梯)
safe_click(1199, 483) # 点击收藏按钮
print("已收藏!")
# 收尾彩蛋(像特工撤离现场)
pyautogui.moveTo(100, 100, duration=1.5)
如图:
(3)弹窗终结者(关闭弹窗)
💻 代码:需要手动确定点赞按钮位置坐标,并修正代码
import pyautogui
import time
# 先让用户准备(像跳伞前检查装备)
time.sleep(5)
# 核心代码三连击(比猫咪踩键盘还简单)
pyautogui.moveTo(1190, 391) # 坐标要改成你的点赞按钮位置
pyautogui.click() # 点击动作比双击门把手还轻快
print("已送出第1个赞!")
# 完成任务后提示(像外卖小哥的温馨短信)
pyautogui.alert(text='点赞完成啦!', title='机器人小助手')
原图:
效果图:
(4)键盘自动填表员(支持中英文版)
📒避坑指南:
在浏览器中打开一次收藏菜单,记录方向键位置。
实际开发中可能需要复杂的请求,可以结合上面知识,进行点击提交等。
💻 代码:需要手动确定填写栏位置坐标,并修正代码
import pyautogui
import time
import pyperclip # 新增剪贴板库
from random import uniform
# 国际友好型输入法(复制、粘贴文字)
def global_type(text):
pyperclip.copy(text) # 先把文字存进剪贴板
pyautogui.hotkey('ctrl', 'v') # 用粘贴大法替代直接输入
time.sleep(uniform(0.2, 0.5)) # 假装在等网络延迟
# 填写内容
time.sleep(3)
pyautogui.click(1545, 570) # 点击姓名栏
global_type("老球") # 使用中文示例
time.sleep(1)
pyautogui.press('tab') # 用tab键切换栏目
global_type("13366203822") # 电话号码
print("Mission Complete!")
源图:
效果图:
(5)键盘自动填表员(仅支持英文版)
📒避坑指南:
在浏览器中打开一次收藏菜单,记录方向键位置。
实际开发中可能需要复杂的请求,可以结合上面知识,进行点击提交等。
💻 代码:需要手动确定填写栏位置坐标,并修正代码
import pyautogui
import time
from random import uniform
# 人类行为模拟器(像树懒敲键盘)
def human_type(text):
for char in text:
pyautogui.write(char)
time.sleep(uniform(0.1, 0.3)) # 随机延迟像思考人生
# 填写内容
time.sleep(3)
pyautogui.click(1545, 570) # 点击姓名栏
human_type("lao qiu")
time.sleep(1)
pyautogui.press('tab') # 用tab键切换栏目
human_type("183CLAMP666")
print("安全填表完成,深藏功与名")
💡有其他需求在评论区告诉我,下期教你用Python搞定!