有时候就想清空下朋友圈,微博什么的,但是发了好几年,几百几千条 ,官方又不提供批量删除工具,纯手工删,有点为难自己,删到猴年马月了,所以作为一个酷酷的计算机民工,自然要靠代码来解决。
删除微博就很简单,毕竟微博有web端,F12几条js代码解决(自行搜索,一大堆),但是删除朋友圈就很蛋疼了,朋友圈是没有web端的,只有Android和iOS,我穷没有iphone也只有安卓,所以本次只是聊安卓的。
首先无论是干啥,都得模拟点击,所以adb是个好东西,功能很齐全了,只要找出要点的位置坐标就OK。
输入
adb shell input text "aaaa"
截图
adb shell /system/bin/screencap -p /sdcard/cap.png
adb pull /sdcard/cap.png C:\Users\guimaizi\source\test\Android_test
adb shell rm /sdcard/cap.png
点击
adb shell input tap 200 500
adb shell input tap 688 1354
adb shell input tap 993 2171
分析人类操作步骤:
1.打开自己的朋友圈。
2.点击一条文字/图片/或者视频
3.再点一下
4.点击删除 Delete
5.点击OK 确认删除。
这个时候问题来了,"步骤2的 点击内容、步骤4的 删除按钮" 的点击位置是会受内容影响的,他的位置不是固定的,是随机的,我们如何判断朋友圈内容和删除按钮的所在的坐标位置,这个时候就得用上EasyOCR,图片内文字识别工具。
如图,click3是判断 朋友圈内容的位置,click4 是判断 删除按钮的位置。
根据以上步骤分析实现代码
# coding: utf-8 -*-
'''
@author: guimaizi
@software: PyCharm
@file: test.py
@Time: 2021/12/2 15:40
'''
import os,easyocr
def screencap():
# 截图
os.system('adb shell /system/bin/screencap -p /sdcard/cap.png')
os.system('adb pull /sdcard/cap.png C:/Users/guimaizi/source/test/Android_test')
print(1111111)
clik2=(993, 2171)
def image_orc(test_text):
# 图像定位
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
result = reader.readtext('cap.png')
num_signal=0
for line in result:
#print(line[1])
num_signal=num_signal+1
if test_text in line[1]:
#print(line)
if test_text=='Test6666':
return result[num_signal]
num_signal=num_signal-1
return result[num_signal]
while True:
screencap()
try:
# 判断一条朋友圈的位置。
click3=image_orc('Test6666')[0][1]
print('click3: ',click3)
os.system('adb shell input tap %s %s'%(click3[0],click3[1]))
except:pass
os.system('adb shell input tap 993 2171')
screencap()
# 判断删除按钮的位置。
click4=image_orc('Delete')[0][1]
print('click4: ' ,click4)
os.system('adb shell input tap %s %s'%(click4[0],click4[1]))
# 确认删除
os.system('adb shell input tap 795 1297')
为了做个朋友圈内容定位,所以删除前发一条内容"Test6666"的朋友圈,还有里面有些位置坐标,请自行抓取修改,因为只用抓一次不会有变动,我这就不改代码,追加功能了,意思到了就行了....
视频效果展示:
因为只是效果视频我懒得改手机屏幕分辨率,一张图太大了 20M左右,EasyOCR识别处理起来会很慢,大家在运行前,请自行修改手机分辨率为最低后执行,就会快很多很多。
欢迎自动化技术交流 wechat: guimaizi
给我找bug的勿扰,我知道有bug 但是能跑就行了,欢迎思路和技术交流。
题外话
之前讲的是相似度识别SQL注入点检测-文本内容相似度,这次来图片内容识别,讲道理,搞漏洞扫描器也要帅一点,什么机器学习/深度学习/强化学习得用起来,什么年代了,马上2022了,兄弟们,还在手工捡漏洞么??? 特斯拉不搞雷达、毫米波、激光不是不无道理,图像识别更接近于人眼,后端通过真实图像内容判断很靠谱...
参考技术
https://developer.android.com/studio/command-line/adb
https://github.com/JaidedAI/EasyOCR