网站表单自动填写【使用pyautogui 】 您所在的位置:网站首页 网页自动填表脚本插件 网站表单自动填写【使用pyautogui 】

网站表单自动填写【使用pyautogui 】

2024-06-02 19:30| 来源: 网络整理| 查看: 265

最近总是要填问卷星问题多达30个,每天一次非常麻烦,于是打算写个脚本自动完成。 本来想用python的selenium配合可开发的火狐浏览器驱动实现(毕竟网上大家都是这么做的)。可是由于以下几个问题让我取消了这个念头:

【主要原因】不知道网怎么了就是打不开github下载不了驱动。本质上还需要对网页布局和js进行针对性的分析,感觉还是写个js脚本,然后复制到 浏览器的console中运行算了。

就这样我先用 js 写出自动填写脚本,然后交给浏览器运行。之后还是想体验一下自动化过程,于是想到如果能控制鼠标,进行鼠标键盘操作就可以了,这样pyautogui就出现在我的视野中,其对鼠标位置的定位是通过屏幕图片搜索的,这个很让我吃惊(以前搞过通过程序控件的id确定位置)。

那就分章节简单介绍

js 脚本

需要根据网页自行分析,有时还需要分析js脚本。通过火狐或者谷歌浏览器。

给个示例

function getById(idnm){ return document.getElementById(idnm) } function getCurrentDate() { var now = new Date(); var year = now.getFullYear(); //得到年份 var month = now.getMonth();//得到月份 var date = now.getDate();//得到日期 month = month + 1; if (month 2

import time def p(*info): print(*info) import os url="https://www.wjx.top/m/xxxx.aspx" os.system(r'"C:\Program Files\Mozilla Firefox\firefox.exe"') time.sleep(1) while True: cposition = pyautogui.locateOnScreen('pics/ff1.png') if cposition: break time.sleep(0.5) cc = pyautogui.center(cposition) _bias=cposition.width pyautogui.moveTo(cc[0]+_bias,cc[1]) pyautogui.click(clicks=1) # 点一下 set_text( url ) pyautogui.hotkey("Ctrl","v") pyautogui.keyDown('Enter') time.sleep(2) while True: cposition = pyautogui.locateOnScreen('pics/ff3.png') if cposition: break time.sleep(0.5) cc = pyautogui.center(cposition) pyautogui.moveTo(cc[0],cc[1]) pyautogui.click(clicks=1) pyautogui.hotkey("Ctrl","Shift","k") time.sleep(1) while True: cposition = pyautogui.locateOnScreen('pics/ff2.png') if cposition: break time.sleep(0.5) with open("casia.js", encoding='UTF-8') as fp: #code=fp.readlines() code=fp.read() set_text( code ) pyautogui.hotkey("Ctrl","v") #pyautogui.click(clicks=1) pyautogui.keyDown('Enter')

里面用到一个剪贴板复制的函数

import win32con import win32clipboard def set_text(string): win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT, string) win32clipboard.CloseClipboard() 总结

这种思路下,其实很多软件都可以自动执行了。以前真没有想到可以借助图片来辅助定位。当然图片一定要选择有特点的,否则会出现检测不到的情况。另外还要注意延时等待。

图片匹配的算法如果自己写的话可以参考 这里 。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有