场景:
2021年度博客之星开始评选了,又是各路豪杰实践自身技术能力的时刻,平时都是写文章维护粉丝好友度,现在才是实打实的展现技术 😃 本分只是python框架的实践,不建议恶意推广,后果自负。
大部分玩家都采用爬虫的方式: 登录 -> 获取 cookie -> 设置cookie -> 调用评论api,再爬取其他博主的链接进行周而复始。
今天咱不讲爬虫,讲python的自动化测试框架pywinauto如何实现模拟手动操作(相同的还有pyAutoGui这个库),制造一个有血有肉的回复机器,爬虫的方式太暴力了,除了反爬外,还会给官方带来大量垃圾数据,作为一个友好型实践玩家,我们点到为止即可。
除了爬虫跟GUI库,chrome浏览器还可使用驱动的方式(chromedrive)不过这种方式也需要反爬,这里不做介绍了。
如何使用pywinauto
在我们的实践中,主要使用到了
import time
from pywinauto import keyboard
from pywinauto import mouse
from pywinauto import Application
keyboard用来模拟键盘输入以及滚动条
mouse用来模拟鼠标点击
application主要用来唤醒浏览器
先附上主要代码
import time
from pywinauto import keyboard
from pywinauto import mouse
from pywinauto import Application
def sendMsg(topicNum):
print("topicNum"+str(topicNum))
keyboard.send_keys('^T')
time.sleep(3)
keyboard.send_keys("https://bbs.youkuaiyun.com/topics/"+str(topicNum))
keyboard.send_keys('{VK_RETURN}')
time.sleep(10)
keyboard.send_keys('{VK_SPACE}')
time.sleep(3)
mouse.click(coords=(1180, 1010))
time.sleep(3)
keyboard.send_keys('# d求个五星回评 ')
keyboard.send_keys('{ENTER}')
keyboard.send_keys("链接直达:[](https://bbs.youkuaiyun.com/topics/603958738)")
keyboard.send_keys('{ENTER}')
keyboard.send_keys("**私信自动源码**")
keyboard.send_keys('^{ENTER}')
time.sleep(3)
mouse.click(coords=(1180, 200))
fun(num+1)
print("end ")
#使用后端方式打开浏览器
app = Application(backend="uia").start("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
time.sleep(3)
#开发打开其他博主的链接
sendMsg(topicNum)
topicNum是其他博主的互动区id,这里建议先获取参与这次评选的用户列表,再次提示,我们只做有限的评论,不要随意爬取随意评论给