你们好,我是@无欢不散,一个资深的互联网玩家和Python技术爱好者,喜欢分享硬核技术。
欢迎访问我的专栏:
在下篇文章《Python手动操作GUI利器——PyAutoGUI》中,我跟你们讲解了一下pyautogui的一些基础知识和操作,你们反馈挺好,给了我很多赞,在此先跟你们说声三克油!
在得到大伙正反馈的同时,我遭到了很大鼓舞,觉得假如只是介绍一下基础操作,有点不过瘾,所以明天早上加班回去,即使很不想打开笔记本,而且还是忍住疲倦给你们奉献一个小实例。
因此,我跑去洗手间用冷水洗了一把脸,瞬间清醒多了,下边步入题外话。
作为一个GUI操作的利器,我们看见了它的操作都很简单,特别浅显易懂,基本上看见函数能够晓得它的功效。
下边我来给你们演示一个小板栗,看了这个板栗后你才会明白它的利器来历了。
好了,不给你们绕弯子了,明天的小板栗就是批量给知乎的文章点赞。
思路
我们先来瞧瞧知乎的个人主页:
这儿,我将下边的tab标签切换到文章这儿,显示的就是作者的文章列表。
我们先来想一下,假如我要给那位作者的文章点赞,我须要怎样做?
首先,我须要找到点赞的图标;之后,我点击点赞图标,完成一次点赞;当我将视野内的文章点赞完成后,我拖动页面往下降,继续前面的步骤。
听到这儿,你是不是认为如此说有点二?
而且我们写程序就必须这样,把每一个步骤都明晰,之后按照步骤去写逻辑,不然当你动手写逻辑的时侯s点赞自助平台便宜,你可能会遗漏一些细节,造成程序难以达到预期疗效,或则出现bug。
实现
有了前面的步骤,我们就可以着手开发代码了。
首先,我要让程序辨识点赞的按扭。下篇文章中我介绍过一个小板栗,就是从桌面上找到浏览器的图标,我们须要将浏览器的图标截图保存为一张图片,然后传给程序,让程序用这张图片到屏幕中去找寻。
这儿也是一样,我先将知乎的点赞按键截了图:
根据前面的步骤,我首先须要辨识当前桌面上的点赞按键,只须要一行代码:
allLocation = pyautogui.locateAllOnScreen('agree.png')
这样就可以找到桌面上所有的点赞按键了。
找到点赞按键以后,下一步就是点赞了:
def like():
time.sleep(1)
if pyautogui.locateOnScreen('agree.png'):
left, top, width, height = pyautogui.locateOnScreen('agree.png')
center = pyautogui.center((left, top, width, height))
pyautogui.click(center)
print('点赞成功!')
这儿,我首先休息了一秒钟,避免程序运行过快,把页面搞崩溃或则触发平台的安全策略。
接着我找到点赞的按键s点赞自助平台便宜,估算按键的中心点,之后进行点击。
这样,我们就顺利地完成了一次点赞操作。
之后,我再来写一个判定,假如当前桌面上的点赞按键都点过了,就滚动屏幕,到下一屏继续点赞:
while True:
allLocation = pyautogui.locateAllOnScreen('agree.png')
if len(list(allLocation)) > 0:
like() # 调用点赞函数
else:
try:
pyautogui.scroll(-500)
print('我滚了!')
except:
print('完蛋啦')
整个代码运行上去是这样的:
注意,在程序运行过程中,一定要将打开知乎页面的浏览器切换到桌面最下层,以保证你当前操作的是这个页面。
这儿没有写中止条件,所以程序会仍然运行下去,直至你自动中止。
总结
整个板栗就是这样的,简洁而不简单,尽管只有几行代码,并且替我完成了一次手动化操作。可能这儿举知乎的事例还不太恰当,由于知乎是有分页的,假如是大瀑布流的页面,那真的可以始终点赞下去,恐怕你可以试试给csdn的文章点赞。