运用selenium和apscheduler库完成一个小外挂
admin
2023-07-30 20:46:56
0

运用selenium和apscheduler库完成一个小外挂

github源码在此,记得点星:
https://github.com/brandonxiang/selenium_apscheduler_example


引言

机缘巧合,我看到一些python写的游戏外挂的教程(主要是网页游戏),也就是,点击屏幕位置。这也激发了我去实现类似的功能,主要用途是去定期点击浏览器屏幕上的某个控件去实现一些功能。当然这类似的工具还可以应用到其他地方,让人脑洞大开,例如火车抢票,定时打卡之类,内容有点敏感,就不再展开。

原理

这个小外挂基于python,运用了两个库selenium和apscheduler。

其中,selenium是一个出色的浏览器操作库,英文叫做Web Driver,主要是用于控制(包括IE在内的)浏览器,网页测试。当然他也可以用作爬虫,参考我的爬虫之路 (静态+动态JS加载) selenium + PhantomJS,虽然我觉得爬虫用request+beautifulsoap会在效率上更好,因为它不经过浏览器端。同类型的Web Driver库还有许多,不在这里展开。

然而,apscheduler是一个定时框架,支持python解释器和cron格式。

用法

克隆源码,安装第三方库,运行脚本即可。

git clone https://github.com/brandonxiang/selenium_apscheduler_example.git
pip install -r requirements.txt

源码

selenium

引用webdriver获取浏览器,webdriver提供了Firefox,PhantomJS等多款国外浏览器可选。browser.get()则是跳转到某个网页。

from selenium import webdriver
browser = webdriver.Firefox()
browser.get(\"http://XX.XX.com/\")

find_element_by_idfind_element_by_tag_name则是通过id或者tag_name去找到对应的元素。send_keys()则是往控件内部传值。click()则是点击事件。

WebDriverWait(browser,10).until(EC.title_contains(\"系统\".decode(\'utf8\')))

当网页发生跳转,需要利用WebDriverWait(browser,时间)等待,否则页面加载不完整。然而,until(EC.title_contains(\"系统\".decode(\'utf8\')))则是等到直到title出现系统两个字。详细教程参考selenium官网

apscheduler

通过BackgroundScheduler()生成一个后台定时框架,然后将其启动。

schedular = BackgroundScheduler()
schedular.start()

运用解释器去设置时间间隔,这里使用cron,day_of_week是一个星期中的某几天或星期几,hourminute就是时和分,当然,也有秒的设定。你也可以不使用解释器和cron来设置时间,那样自由度更高。详细教程参考apscheduler文档

@schedular.scheduled_job(\'cron\',day_of_week=\'mon-fri\',hour=8,minute=58)

总结

这里将两个框架结合了一下。总结一下,首先了解控件的对应的id或者class等属性,然后针对某个控件通过属性进行捕获,最后生成点击,文本输入,页面跳转等事件即可。

转载,请表明出处。总目录前端经验收集器

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...