一.养号
1.目的
通过大数据,推送相关内容,方便获取客户
各大平台为了防止某些恶意行为,比如:广告加人、推销、诈骗等行为,所以会有封控的存在
这样就需要我们提升自己账号的阈值,防止我们的账号被打上“高危”的标签,从而失去某些功能
2.方法
不管微信、抖音还是小红书,我们都是通过群控机来控制的,为了让我们的行为看起来“像一个人”,我们需要用代码,控制群控机,让手机执行一些“拟人”的操作,我们将这些操作称为“养号”
那么我们如何达到防止封控(降低封控概率)的目的呢?
1.好友之间互相聊天。这个是最有效的方式,正常人都会有好友,加好友,给好友发信息,或者发图片, 或者转发视频,这些都是可以添加的点
2.刷视频。模拟人观看视频,遇到“感兴趣”的视频,增加停留时间,增加点赞、评论、转发等操作。
3.看文案。除了视频,像小红书这些经常会有人分享日常,或者谈论一些话题。在微信中类似的功能等则更多,比如:公众号,朋友圈等。可以给文案,给朋友圈点赞、留言、转发等,达到养号的目的。
关于获客这方面:
后续在需求文档中会提供很多需要关注的账号,我们需要做的,就是能全自动地关注他,并且对这些账号发布的视频做一些处理,比如点赞等,这样我们在之后刷视频的时候,会更多的获取到相应的内容
包括我们自己平时在刷视频的过程中,常常会发现视频有一些标题,或者是视频的简介,会有#美女 #二次元 #游戏 #电影 等各种各样的标题,这些就是我们在刷视频以及关注账号时,给你推送视频等的重要依据
3.怎么实现上述功能
我们是使用python脚本控制手机,然后利用手机进行手机控制
之后会给一个远程,通过rustdesk或者todesk来远程电脑,然后通过投屏软件来控制手机,如图所示:
因为某些代码的某些功能,比如添加好友等,可能会触发封控机制,所以有些代码我们是需要先写在本地,然后将自己的手机连接在电脑上进行一些测试,等熟悉了功能,对这件事有了基本的了解后,再考虑在群控机上实际测试(因为手机型号、app版本、分辨率等各种原因,可能导致你代码中出现很多报错,比如:因为分辨率问题,你通过px或者%来定位点击一些按钮时,会出现你的手机上可以点击成功,而投屏的手机上却无法成功的情况;再比如:因为app版本不统一的问题,有的按钮你要通过xpath进行定位,但是在app版本更新后,xpath会发生一些小小的变化,导致在上一个版本能识别到的按钮更新后无法锁定)
下面是python脚本控制手机的重点,我们使用adb(相当于java的各种maven依赖,python的各种包)来控制手机:
pip install uiautomator2 # 这个包是用于控制手机
pip install pillow # 这个包用于截图
pip install -U weditor # 这个包是可以调试,在浏览器页面上直观的获取某个控件名称
abd命令:
将手机通过USB数据线连接至电脑,打开开发者模式,并开启USB调试,并且开启允许电脑通过USB向手机安装软件等权限。接收电脑发来的链接秘钥并链接。
(使用Python包uiautomator2控制手机时,需要在手机上安装app)
在电脑中使用WIN+R弹出运行框,在框内输入cmd调用命令行窗口。在窗口中输入如下命令:
adb devices
窗口会打印当前USB所连接手机的信息,如果没有手机连接,将会显示如下信息,这是需要检查手机连接的USB线是否正常,并且检查开发者模式是否打开等等。当然如果直接报错找不到adb命令,则需要检查adb相关配置是否完成。
C:\Users\Administrator>adb devices
List of devices attached
C:\Users\Administrator>|
如果完全正常,且手机已经链接,则将会显示如下信息:
前面的数据就是设备号,使用uiautomator连接的时候就用这个
你要在自己手机上调试的时候,还需要安装一个叫ATX的东西:
在命令行执行如下命令,在手机上安装ATX软件。如果手机上没有安装此APP,uiautomator2将无法控制手机
python -m uiautomator2 init
下面是一些简单的举例:
# 引用uiautomator2包
import uiautomator2 as u2
# 使用设备唯一标志码链接设备,其中9phqaetw是通过adb获取的设备标志码
d = u2.connect('9phqaetw')
# d = u2.connect() # 当前只有一个设备时可以用这个
d.unlock() # 解锁屏幕
x,y = 100,100
d.click(x,y) # 点击屏幕坐标为 x,y 的点
# 双击屏幕
d.double_click(x,y)
# 长按
d.long_click(x,y)
# 单机屏幕上字符为9的控件
d(text="9").click()
再后面就是刚刚上面谈到的在浏览器页面上直观的获取某个控件名称:
python -m weditor
然后出现下图的,则表示打开成功:
这个时候浏览器里面看就是:
然后就可以看到当前页面的各种各样信息。
然而weditor这个组件可能会遇到一些问题,总是无法连接等,或者提示你address有问题,或者获取不到的,这个是因为你手机问题,返回不了那个address,这个时候你的解决办法就是:
https://blog.csdn.net/qq_52947665/article/details/141962270
如果碰到有关的更多的问题,可以来问我
后附adb的一些相关命令(不是很重要,看一遍了解即可):
1.关闭adb服务:adb kil-server
2.启动adb服务 adb start-server
3.查询当前运行的所有设备 adb devices
4.可能在adb中存在多个虚拟设备运行 可以指定虚拟设备运行 -s 虚拟设备名称
5.重启设备 adb reboot --指定虚拟设备 adb -s 设备名称 reboot
6.査看日志 adb logcat 清除日志 adb logcat -c
7.进入inux shell下 adb shel 其中常用的linux命令 cd cat 等等 输入su可以获取超级管理员名称了 要确定是否有哪些命令 进入 system/bin目录 就知道了
8.传入文件到设备中 adb push 本地文件 远程目录
9.从设备中拷贝文件到本地 adb -s emulator-5556 pull /data/config.ini d:
10.显示当前运行的全部模拟器:adb devices
11. 安装应用程序:
adb install -r 123.apk
12.获取模拟器中的文件:
adb pull <remote> <local>
13.向模拟器中写文件:
adb push <local><remote>
14.进入模拟器的shell模式:
adb shell
15.卸载apk包:
adb shell
cd data/app
rm 123.apk
exit
adb uninstall 123.apk
adb install -r 123.apk
16.查看adb命令帮助信息:
adb help
17.删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)。
adb shell
cd system/app
rm 123.apk
18.获取管理员权限:
adb root
19、复制文件:
复制一个文件或目录到设备
adb push<source><destination></destination></source >
如:adb push update.zip /sdcard/
从设备上复制一个文件或目录:
adb pull <source><destination></destination></source>
如: adb pull /sdcard/update.zip.
20、取得当前运行设备的实例的列表及每个实例的状态:
adb devices
21:、adb shell input tap
这条命令模拟Android手机在屏幕坐标(XY)处进行了点击操作。
22、adb shell input swipe
这条命令模拟Android手机从屏幕坐标(X1,Y1)滑动到坐标(X2,Y2)的操作。
23、uiautomator dump dump: creates an XML dump of current Ul hierarchy 这个命令是用来成成当前界面的UI层次,并用XML格式进行展示。这样就可以获取各个组件的位置了。
注:如果PC要想同时控制多台Android手机,必须在adb 后面添加-s
例:adb -s 13b6e4c4 shell input tap 400 400
表示对13b6e4c4这台Android手机进行在屏幕上(400,400)坐标位置进行模拟的点击事件。
24、能看到设备信息就代表设备已经连接成功了,接下来的命令就是adb install 路径+包名.apk
例如我的安装包放在桌面,那么命令就是adb install C:Users\hyhiDesktop\XxX.apk
*** adb shell uiautomator dump /mnt/sdcard/window_dump.xml 获得手机当前界面的UI信息,生成window_dump.xml
*** adb shell input text“123”输入text