微信朋友圈采集 APP,一个周末小作品~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
qq292382270
V2EX    分享创造

微信朋友圈采集 APP,一个周末小作品~

  •  
  •   qq29238270 2019-04-01 04:09:25 +08:00 7051 次点击
    这是一个创建于 2461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    运行演示视频(高清): https://v.youku.com/v_show/id_XNDEyMDUyMTc3Ng==.html

    去年的时候开发了练手,在 v2 上发过一次展示帖子: t/479170
    中间这段时间有一些 v2 的朋友加我想要使用.无奈当初只是纯粹的代码运行,没有匹配相对应的前后台逻辑,所以就没有发布.这次趁着周末两天比较闲(其实是失业了),更新了一下..

    关于技术的使用:
    1.网站界面用了 layui 的免费模版(我基本不写前端的,第一次用 layui,磕磕碰碰的粘帖了一些界面代码..
    2.后台 php,没用框架.因为时间问题,不想设计什么用户登录注册等逻辑,统一使用 QQ 登录授权方式.交互问题更是欠考虑,一律表单~
    3.安卓端,原生 java 开发.是的,还是因为时间问题,没有设计界面.核心是使用无障碍服务进行自动化操作.有个地方需要注意,在朋友圈的动态,打开多图进行保存和切换的时候,需要满足 ROOT 权限或者安卓 7.0+这俩条件之一,因为单纯的无障碍无法长按微信图片打开菜单保存,需要 root 下执行 adb 命令.或者 7.0+的系统无障碍可以模拟手势长按.
    4.存储方式:七牛云对象存储. 之前有个项目用到七牛,所以这次的存储方式的代码就直接复制了.不过,对七牛实在没太深入,自己写了个生成上传凭证的代码,没用官方的 sdk,有点魔性,生成的凭证有的能用有的用不了.还望能看得出问题的大神前辈们指点迷津:

    function qiniu_token($scope, $AccessKey, $SecretKey) { $scopeArr = array( 'deadline' => strtotime("+1 hours"), 'scope' => $scope); $token = json_encode($scopeArr); $encodedPutPolicy = base64_encode($token); $token = hash_hmac('sha1', $encodedPutPolicy, $SecretKey, TRUE); $encodedSign = base64_encode($token); $token = $AccessKey . ':' . $encodedSign . ':' . $encodedPutPolicy; return $token; } 

    当前已知问题和可新增功能: 1.每次扫描间隔只会读取最新的一条动态进行判断 -> 解决方案:1.可以进行滚动页面判断间隔期间是否刷新多条;2.可以在 root 情况下读取微信本地数据库判断刷新了几条(读取数据库的时候,可以取到图片的缩略图,但是没有解密算法的话取不到原图).
    2.上面说的因为七牛的上传凭证生成问题,可能导致采集到的文件上传失败. -> 解决方案:1.当前使用的是循环请求生成六次凭证的方案.只能是个临时方案; 2.新增多个保存方式,例如加入阿里云腾讯云百度云以及自定义 url 的方式.
    3.适配问题.当前仅测试一加 123 和小米 max 这四个机型.其他机型可能有一些蜜汁 bug..
    4.可新增在 root 下读数据库获取动态发送者的 wxid 及头像功能.
    5.可新增采集指定好友所有朋友圈数据功能.
    7.网站还有一堆逻辑没写..
    8. ....

    最后:
    上一段说的那些问题和待完善的,我估计都不会再去理他了,可能也不会再更新,除非这个 app 有一定量的用户..
    这样的脚本采集方式是非常低效率的,如果看到这篇文章的你,真的有这方面的需求,可以考虑用 ipad 协议开发而成的程序.至于去哪里找,别问,问就是百度.

    非盈利,纯兴趣项目.为了防止 seo,有兴趣用一下的朋友,网址可以到视频里面看浏览器地址栏即可.. 最近心态崩了,睡了,安..

    10 条回复    2019-09-26 17:21:30 +08:00
    ji980925
        1
    ji980925  
       2019-04-01 07:53:56 +08:00 via Android
    我用按键精灵写过一个,遇到的问题和你的基本一样,只能识别第一条动态等等。
    按键精灵虽然 low, 但是好在能适配大部分 root 过的 Android 手机
    licoycn
        2
    licoycn  
       2019-04-01 09:28:39 +08:00
    用 auto.js 会不会也可以实现相关功能
    a62527776a
        3
    a62527776a  
       2019-04-01 11:03:39 +08:00   1
    优酷毒啊 45 秒广告就关了
    eW91IHNlZSBtZQ
        4
    eW91IHNlZSBtZQ  
       2019-04-01 12:29:17 +08:00
    为啥不传到 bilibili
    qq292382270
        5
    qq292382270  
    OP
       2019-04-01 15:07:30 +08:00
    @ji980925 最简单的就是滚动一页就可以解决问题
    @licoycn auto.js 也是这样实现的. 一样的
    @a62527776a 哈哈...
    @eW91IHNlZSBtZQ 我可能是个假程序员..没有在 bilibili 上传过视频
    Shawnnnnnn
        6
    Shawnnnnnn  
       2019-04-02 08:22:37 +08:00 via iPhone
    @qq292382270 acfun? Youtube?
    milesnihao
        7
    milesnihao  
       2019-04-02 09:10:15 +08:00
    bilibili 的题目难的我现在都没做出来。
    zw1234
        8
    zw1234  
       2019-04-02 10:11:57 +08:00
    16 年的时候我玩过,采集整个朋友圈,然后排版做成电子书了,商业化失败了...有兴趣交流下:emhlbmc1OTM0NDY4OTk=
    qq292382270
        9
    qq292382270  
    OP
       2019-04-02 19:27:43 +08:00
    @Shawnnnnnn 哈哈.. 也没有..
    @milesnihao 我靠百度硬查了一半的题..
    @zw1234 已加
    theliuqi
        10
    theliuqi  
       2019-09-26 17:21:30 +08:00
    膜拜大佬,最近想去深圳发展.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2591 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 14:54 PVG 22:54 LAX 06:54 JFK 09:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86