手把手教你用Python薅 快手极速版
作者 |13妖、老表
来源 | 简说Python
软件准备:
1、Python环境安装 https://www.python.org/downloads/
2、夜神模拟器 https://www.yeshen.com/
3、adb 工具 (git代码包里面已下载,拿来直接用)
当前为windows下操作~
二、开始动手动脑
如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,我建议使用Python基础环境+jupyter即可,安装使用参考Windows/Mac 安装、使用Python环境+jupyter notebook
如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm,安装使用参考:Windows下安装、使用Pycharm教程,这下全了 和 Mac下玩转Python-安装&使用Python/PyCharm 。(现在我更喜欢开源的VS Code)
(具体步骤大家可以看上面推荐的文章)这里写个简单版本(windows下),下载好Python安装包,目前下载的是3.7版本的 ,点击下一步安装就可以了,安装好后,点击电脑左下角:开始->运行->输入cmd,然后回车即可进入windows命令行输入界面,输入 python,如果出现如下界面(图1)说明python已成功安装。
图1
如有错误无法运行,应该是没有设置环境变量的原因,可设置windows环境变量 如下图2。
图2 设置环境变量,变量值为python安装目录
2.2 安装夜神模拟器
浏览器直接访问夜神https://www.yeshen.com/,然后点击立即下载,即可下载对应的安装包,这里我也下载了一份,存储到了百度云盘,大家需要的话可以直接公众号「简说Python」回复:夜神(个人觉得官网直接下载更快)。
下载好后,点击安装包直接安装,一直点下一步即可(下图是老表用mac安装过,更简单),安装完成后桌面会出现两个快捷方式:夜神模拟器,夜神多开器。
2.3 模拟器中安装快手极速版配置
点击应用图标,打开夜神模拟器,搜索:快手极速版,然后点击安装按钮即可安装。
再额外说下,问了官方目前Mac是不支持直接安卓多开的,不过我查到,可以尝试用夜神的Virtual Box安装windows虚拟机,然后再在虚拟机下载windows版本夜神,然后多开。。。我没尝试。
(以下为widnows操作)关于windows下如何实现多开,可以查看夜晚神官方文档,很简单:https://support.yeshen.com/zh-CN/often/dk
这里特别说明下多开的设置,我之前默认添加的模拟器,i5+8G 的台式机开3个模拟器,电脑会有些卡。因为我们只要让模拟器能够运行 快手极速版,这里我们把模拟器的配置调低些。如图3到图5操作。
图3 夜神多开器,添加多个模拟器
图4 设置模拟器
图5 设置模拟器配置
注:如何查看夜神模拟器端口(后面Python 调用多开 会用到),看下图6到图7操作。
进入机器的安装目录,使用notepad 或者 文本工具打开
图6
图7
2.4 下载adb 工具
大家可以直接访问下方对应系统链接去下载,也可以直接在公众号「简说Python」 回复:夜神,我已经给大家都打包好啦~还有本项目源码。
Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip
下载好后,你可以选择将adb.exe存放在任意目录,记得给它加一个环境变量即可(不加也可以,直接在adb.exe所在目录打开cmd,然后运行代码即可)。
2.5 开始Python 脚本的编写
主要思路就是,利用adb工具,通过Python对安卓模拟器进行相关自动化操作。
目前有几个问题后续可以优化的,希望感兴趣的一起来讨论讨论:
1)目前采用的是产生一个随机的时间来作为向上滑动的时间,快手极速版里面有的视频长有的短,如何通过界面上计时转圈来判断上划的时间?
2)在刷视频时会遇到滑动验证,如何自动验证?
3)最后一个就是app 会自动关闭,如何自动重新开启?
4)思考:如何实现多个手机号?
以下为本项目所有源码,欢迎大家交流学习~
# -*- coding: utf-8 -*-
import time
import subprocess
import random
# 连接模拟器
def connect():
return subprocess.run("adb connect 127.0.0.1:62001",shell=True)
# 自动化操作
def move_up():
state=connect()
print("状态:",state)
# 向adb发送命令:向上滑动屏幕
cmd="adb -s 127.0.0.1:62001 shell input swipe 310 650 310 200"
# 向adb 发送命令:点击屏幕
cmd_point="adb -s 127.0.0.1:62001 shell input tap 310 310"
# 循环1000次
for i in range(1000):
index = random.sample(range(5,15),10)
print(index)
res=subprocess.run(cmd,shell=True)
res_point=subprocess.run(cmd_point,shell=True)
time.sleep(index[0])
print(res)
print("------------------------------")
res=int(str(res).replace(")","").split("=")[-1])
print(res)
print("------------------------------")
if res!=0:
connect()
# 暂停5秒
time.sleep(5)
print("第%d个视频"%i)
if __name__=="__main__":
move_up()
另外作者还写了一个windows脚本文件1.bat,需要注意,下面的adb表示你本地adb.exe所在目录,a1.py表示上面的python脚本路径,请确保输入正确,如果出现找不到文件什么的,应该大概率是文件路径有问题。
cd adb :: 进入d盘adb 目录
python a1.py :: 运行python脚本
本项目源码和相关程序作者已开源到GitHub,大家可以前往下载,开源地址:https://github.com/clchyj/pythonBonusHunter
2.6 运行脚本程序