前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动删除朋友圈的py脚本实现

自动删除朋友圈的py脚本实现

作者头像
鬼麦子
发布2023-03-07 15:36:01
1K1
发布2023-03-07 15:36:01
举报
文章被收录于专栏:鬼麦子鬼麦子

有时候就想清空下朋友圈,微博什么的,但是发了好几年,几百几千条 ,官方又不提供批量删除工具,纯手工删,有点为难自己,删到猴年马月了,所以作为一个酷酷的计算机民工,自然要靠代码来解决。

删除微博就很简单,毕竟微博有web端,F12几条js代码解决(自行搜索,一大堆),但是删除朋友圈就很蛋疼了,朋友圈是没有web端的,只有Android和iOS,我穷没有iphone也只有安卓,所以本次只是聊安卓的。

首先无论是干啥,都得模拟点击,所以adb是个好东西,功能很齐全了,只要找出要点的位置坐标就OK。

代码语言:javascript
复制
输入
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 是判断 删除按钮的位置。

根据以上步骤分析实现代码

代码语言:javascript
复制
# 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鬼麦子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档