抖音推荐列表视频爬虫 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cnbattle
V2EX    Go 编程语言

抖音推荐列表视频爬虫

  •  
  •   cnbattle
    cnbattle 2019-08-29 11:10:07 +08:00 13051 次点击
    这是一个创建于 2240 天前的主题,其中的信息可能已经有所发展或是发生改变。
    基于 APP 爬取

    相关技术:golang adb nodejs anyproxy

    特点: 可设置仅抓取大于 xx 赞的视频

    github: https://github.com/cnbattle/douyin

    代码粗糙,主要分享下思路,这样的模式几乎可以抓取任何 APP HTTP API 的数据或内嵌 H5 数据,当然如果数据全部加密或编码传输的就不行了
    第 1 条附言    2019-08-29 18:36:27 +08:00
    各位老哥,退一步海阔天空,下班了,该回家玩耍了
    90 条回复    2019-09-03 04:34:27 +08:00
    az999
        1
    az999  
       2019-08-29 11:48:58 +08:00   1
    好的,已反馈给 抖音反爬组
    darknoll
        2
    darknoll  
       2019-08-29 13:14:08 +08:00
    @az999 人家用真机,你反爬个卵啊
    az999
        3
    az999  
       2019-08-29 13:39:51 +08:00
    @darknoll 嘴巴干净点,生活不如意 别冲我这里来。不惯着你
    gunjianpan
        4
    gunjianpan  
       2019-08-29 13:44:51 +08:00
    @az999 宁可真干净

    app 端抓取信息确实是目前很多服务获取信息比较稳定的手段
    cnbattle
        5
    cnbattle  
    OP
       2019-08-29 13:50:15 +08:00
    @az999
    自己给个反爬办法 上 protobuf 二进制传输 或自己定个简单的加密 /编码方式 不外泄 就爬不了
    glacer
        6
    glacer  
       2019-08-29 14:04:22+08:00
    @cnbattle 逆向 APP 不就行了?
    trys1
        7
    trys1  
       2019-08-29 14:06:01 +08:00 via Android
    用真机,成本好高
    cnbattle
        8
    cnbattle  
    OP
       2019-08-29 14:07:06 +08:00
    @trys1 虚拟机也行的
    deepall
        9
    deepall  
       2019-08-29 14:09:40 +08:00
    又是一个志同道合的小伙伴
    cnbattle
        10
    cnbattle  
    OP
       2019-08-29 14:12:56 +08:00
    @glacer 0.0 是可以,不过 逆向 app 相对来说 技术要求会高一些,会劝退我这样非专业做这个方向的人..
    LeeSeoung
        11
    LeeSeoung  
       2019-08-29 14:14:27 +08:00
    检查当前环境是否使用代理,是的话要求去掉代理,上 https,可以拦住很多人了
    az999
        12
    az999  
       2019-08-29 14:15:22 +08:00
    @gunjianpan 别在这里阴阳怪气的,装什么呢?
    cnbattle
        13
    cnbattle  
    OP
       2019-08-29 14:20:33 +08:00
    @LeeSeoung 请问下, 如果不再真机 /虚拟机设置代理,在上游网络设置的话(如路由器设置代理),app 端能检测到吗? 不能很了解这块
    LeeSeoung
        14
    LeeSeoung  
       2019-08-29 14:22:54 +08:00
    @cnbattle 可以做,但是上了 https 就比较难搞,所以我才补了一句用 https,纯 http 你用 wireshark 或者其他工具抓网卡流量就行。
    jinksw
        15
    jinksw  
       2019-08-29 14:47:03 +08:00
    半物理爬虫
    cnbattle
        16
    cnbattle  
    OP
       2019-08-29 14:50:57 +08:00
    @jinksw 简单粗暴
    dabaibai
        17
    dabaibai  
       2019-08-29 14:58:35 +08:00
    @LeeSeoung https 也能中间人公鸡....防毛爬虫..永远不可能有技术能防爬虫的. 当然,你可以数据不展示
    golden0125
        18
    golden0125  
       2019-08-29 15:05:09 +08:00
    是用 go 在安卓端写了个后台 APP 抓流量吗?
    Raymon111111
        19
    Raymon111111  
       2019-08-29 15:06:52 +08:00
    真机当然可以做风控

    比如获取机器陀螺仪上的一些信息
    tongyang
        20
    tongyang  
       2019-08-29 15:14:28 +08:00
    @az999 你这臭嘴 我佛了
    akira
        21
    akira  
       2019-08-29 15:18:34 +08:00
    wsf 三连击
    yngby
        22
    yngby  
       2019-08-29 15:33:08 +08:00
    @az999 我也佛了
    nicevar
        23
    nicevar  
       2019-08-29 15:33:29 +08:00
    没必要整这么麻烦,一台 root 的手机+模拟滑动+tcpdump 过滤一下就搞定了
    jookr
        24
    jookr  
       2019-08-29 15:39:28 +08:00
    有没有人推荐一个网页版看抖音的网址
    az999
        25
    az999  
       2019-08-29 15:51:19 +08:00
    @tongyang
    @yngby
    来说一下,哪里服了?我是攻击者么?装你妈啊,曹尼玛
    npe
        26
    npe  
       2019-08-29 16:07:43 +08:00
    @az999 以后记得加上狗头
    aozhou
        27
    aozhou  
       2019-08-29 16:24:36 +08:00   3
    @az999 开始使喷口了,您不是素质高吗?泼凉水素质高?别人看不惯了就说人家过得不好,喷不过了就开是脏话喷粉,没那素质别学素质用语,您玩不起,会现形。
    cnbattle
        28
    cnbattle  
    OP
       2019-08-29 16:45:09 +08:00
    @golden0125 不是 ,大概是 用 anyproxy 代理,将需要的 json 数据提交到 go server
    cnbattle
        29
    cnbattle  
    OP
       2019-08-29 16:46:11 +08:00
    @jookr 感觉可以搞一个
    tongyang
        30
    tongyang  
       2019-08-29 16:46:20 +08:00
    @az999 你在这气急败坏的样子可真是好笑呢
    fvckDaybyte2
        31
    fvckDaybyte2  
       2019-08-29 16:49:28 +08:00 via iPhone   2
    @az999 真没听出来“反爬个 ruan ”有攻击你的意思,草你妈我听出来了
    NeverMoreGY
        32
    NeverMoreGY  
       2019-08-29 16:49:40 +08:00   3
    @az999 嘴巴干净点,生活不如意 别冲这里来。不惯着你
    yngby
        33
    yngby  
       2019-08-29 17:22:05 +08:00   2
    @az999 嘴巴干净点,生活不如意 别冲这里来。不惯着你
    simonv3ex
        34
    simonv3ex  
       2019-08-29 17:25:30 +08:00   1
    @az999 难受不,臭弟弟
    az999
        35
    az999  
       2019-08-29 17:25:40 +08:00
    @yngby
    @NeverMoreGY
    @fvckDaybyte2
    @tongyang 我真笑死了,首先我不是首先攻击的,然后 “ ruan ”这个字,就是脏话,攻击人的,我反击攻击我的脏话而已,并不是生活不如意攻击的。 继续抱团攻击我。哈哈哈。
    simonv3ex
        36
    simonv3ex  
       2019-08-29 17:26:23 +08:00
    啊呀,打断队形了
    yngby
        37
    yngby  
       2019-08-29 17:27:00 +08:00
    @az999 宁可真是将双标进行到底呢哈哈哈,我就说了句我佛了你就要攻击我呢
    simonv3ex
        38
    simonv3ex  
       2019-08-29 17:27:47 +08:00   1
    拉黑一个人,会让你看不到完整的世界;试试拉红?
    t/592670
    az999
        39
    az999  
       2019-08-29 17:27:51 +08:00
    @simonv3ex 抱团来怼我,可以啊,不难受,我占理怕什么? 继续啊,你们这些有什么逻辑思维么?哈哈哈。
    az999
        40
    az999  
       2019-08-29 17:29:33 +08:00
    @yngby 说话不需要负责么? 乱说话也是要负责任的,我攻击你 是你首先攻击我了。
    fvckDaybyte2
        41
    fvckDaybyte2  
       2019-08-29 17:29:51 +08:00 via iPhone
    @az999 是脏话就是攻击你的话,我朝天喊一句卧槽是不是全宇宙都被我攻击了?
    yngby
        42
    yngby  
       2019-08-29 17:30:24 +08:00
    @az999 我哪里攻击你了嘛~我就是说了句服了呀 你就要骂人家嘤嘤嘤
    az999
        43
    az999  
       2019-08-29 17:30:41 +08:00
    @fvckDaybyte2 你脑袋怎么长得? 别人对我说一句话脏话,难道我不反击? 我要跪着给他 道歉?
    yngby
        44
    yngby  
       2019-08-29 17:32:23 +08:00   1
    @az999 你现在无端攻击我了,快给我跪着道歉
    wogong
        45
    wogong  
       2019-08-29 17:36:08 +08:00
    @Livid Report @az999
    fvckDaybyte2
        46
    fvckDaybyte2  
       2019-08-29 17:36:50 +08:00 via iPhone
    @az999 你脑袋长得真好,厉害,继续作,我看戏。
    vmskipper
        48
    vmskipper  
       2019-08-29 17:47:34 +08:00
    嘴巴干净点,生活不如意 别冲这里来。不惯着你
    explore365
        49
    explore365  
       2019-08-29 18:12:46 +08:00
    explore365
        50
    explore365  
       2019-08-29 18:16:06 +08:00
    你音反扒组会如何来就此反扒,哈哈哈哈哈哈哈。。。。。
    explore365
        51
    explore365  
       2019-08-29 18:23:53 +08:00   1
    t/356202 你爬取别人资源时,咋没见过你这么装逼
    mamahaha
        52
    mamahaha  
       2019-08-29 18:30:59 +08:00
    你这个价值太高了,应该封闭宣传啊,这样有点亏啊,我先下载了。
    leafdream
        53
    leafdream  
       2019-08-29 18:33:02 +08:00
    @az999 智障
    cnbattle
        54
    cnbattle  
    OP
       2019-08-29 18:41:32 +08:00
    @mamahaha 所以我要在 readme.md 里加个收款码吗 0.0
    renothing
        55
    renothing  
       2019-08-29 19:37:30 +08:00
    其实这类 app,用自动化测试工具就能爬,反爬是不存在的。
    INTJ
        56
    INTJ  
       2019-08-29 20:43:23 +08:00 via Android
    咋骂起来了!
    az999
        57
    az999  
       2019-08-29 22:06:53 +08:00
    @explore365 不好意思,我今年 5 月份已经离职了。1l 我明显是 玩笑话,我不知道 哪里装逼了? 抱团攻击很爽么?
    Iamnotfish
        58
    Iamnotfish  
       2019-08-29 22:37:32 +08:00
    认真脸提问:抖音(或者其他 APP,头条,淘宝啥的)会律师函警告做其爬虫的程序员吗?如果会的话出发点是什么?我不太懂,另外有人知道抖音的 ROBOT.TXT 是啥不?
    yngby
        59
    yngby  
       2019-08-29 22:42:34 +08:00
    @az999 道歉啊 别装死
    az999
        60
    az999  
       2019-08-29 23:07:15 +08:00
    @yngby 你这些思维逻辑真差,太 low 了,真的,首先你先嘲讽攻击我的,我反击了,你先跪下道歉好吧。
    GoTop
        61
    GoTop  
       2019-08-30 06:41:29 +08:00
    有没有 python 版啊
    Pi7bo1
        62
    Pi7bo1  
       2019-08-30 08:30:22 +08:00
    @az999 biubiu~ 你死了
    cnbattle
        63
    cnbattle  
    OP
       2019-08-30 08:34:26 +08:00
    @GoTop 只是 golang 起了一个 web server 接收 anyproxy post 过的 json 数据 和 用 adb 控制模拟滑动 其他都是一样的,我不了解 python,只能自己实现了

    1 用 python 写个 web server 处理 https://raw.githubusercontent.com/cnbattle/douyin/df129be17c6711b0a37682df8cb0c253c517c9d0/body.json 这样的一个 json 数据,

    2 用 python 调用命令行 运行 这几个命令即可,
    ```
    打开抖音 adb shell am start -n com.ss.android.ugc.aweme/.main.MainActivity
    关闭抖音 adb shell am force-stop com.ss.android.ugc.aweme
    屏幕滑动 adb shell input swipe 500 1000 400 100
    ```
    cnbattle
        64
    cnbattle  
    OP
       2019-08-30 08:37:06 +08:00
    @Iamnotfish 不知道 0.0 躲在角落,瑟瑟发抖~
    airqj
        65
    airqj  
       2019-08-30 09:07:36 +08:00
    这 V 站近年来素质变得可怕啊      
    被攻击的人反驳了几句就变成了主动攻击人了    哈哈哈
    LiHaiWordGe
        66
    LiHaiWordGe  
       2019-08-30 09:15:01 +08:00   1


    @simonv3ex 好用
    ddup
        67
    ddup  
       2019-08-30 09:24:47 +08:00 via Android
    感谢
    yngby
        68
    yngby  
       2019-08-30 09:29:58 +08:00
    @az999 我没有嘲讽你啊?我说了句我佛了就算嘲讽你吗?但你可是实打实的骂我了,跪下道歉
    uTuw2C6uf964Kx6o
        69
    uTuw2C6uf964Kx6o  
       2019-08-30 09:58:18 +08:00
    这小破站越来越有意思了,什么人都能访问到,还能在这里吵起来,
    微信 base64 发出来,加好友对骂,不要在小破站骂街,容易降低各位的身份
    TypeErrorNone
        70
    TypeErrorNone  
       2019-08-30 10:04:26 +08:00
    @az999 你怎么这么暴力?
    haha12000
        71
    haha12000  
       2019-08-30 10:06:20 +08:00
    @az999 活捉一喷子
    graceday
        72
    graceday  
       2019-08-30 10:06:44 +08:00
    @mrant 这个办法好,要不建个微信群,来个群吵如何?
    z54749412
        73
    z54749412  
       2019-08-30 10:13:04 +08:00
    @az999 你的人生到底多灰暗啊?养成了 这张臭嘴。
    darknoll
        74
    darknoll  
       2019-08-30 11:14:26 +08:00
    @az999 nc 玩意儿
    hellomimi
        75
    hellomimi  
       2019-08-30 11:26:09 +08:00   1
    《论狗头保命的重要性》![doge]( )
    GoTop
        76
    GoTop  
       2019-08-30 12:25:21 +08:00
    @cnbattle #63 恩,看了你的解释感觉用 python 来实现也没什么问题
    max6
        77
    max6  
       2019-08-30 15:51:05 +08:00
    没忍住,哈哈哈...
    woshinide300yuan
        78
    woshinide300yuan  
       2019-08-30 16:18:31 +08:00   1
    哈哈,活生生让一个人给带歪了。。。
    哈哈哈哈哈哈……
    真傻逼!
    BigDogWang
        79
    BigDogWang  
       2019-08-30 16:52:19 +08:00
    这个帖子简直大型 block 现场
    BigDogWang
        80
    BigDogWang  
       2019-08-30 16:53:46 +08:00
    @glacer 有几个能逆向出来的呢,朋友接到任务,要做一个抖音第三方软件,光登陆这一步就卡住了
    caneman
        81
    caneman  
       2019-08-30 16:53:47 +08:00
    这个人有点像煎蛋的电池哥,不知道 V2 有没有人玩煎蛋
    niknik
        82
    niknik  
       2019-08-30 17:06:59 +08:00
    我看都在喷这个人,我以为他很委屈差点打抱不平,看了一下楼,我决定

    @az999 nmsl,你没商量,那没事了,你买啥了,尼美舒利,戳你妹,出那么,曹年末,次那么,超耐磨,cnm
    niknik
        83
    niknik  
       2019-08-30 17:08:17 +08:00
    @az999 都在喷你,臭弟弟,是不是怀疑人生了,是不是在思考我错在哪儿了,加油,会有更多人喷你的,嘻嘻
    Buges
        84
    Buges  
       2019-08-30 17:15:47 +08:00 via Android
    @GoTop 可以了解下 mitmproxy
    Leigg
        85
    Leigg  
       2019-08-30 19:58:05 +08:00 via Android
    我也佛了,不过我佛的是二楼还有…一批混子
    renhua
        86
    renhua  
       2019-09-01 15:20:27 +08:00
    @Livid Report @az999
    yankebupt
        87
    yankebupt  
       2019-09-01 20:52:00 +08:00
    @cnbattle 好吧折腾了几个小时发现
    1 go 运行时第一次上网自动抓 dependency 还挺好玩的
    2 好像已经没一个肯在 vmware player 15 虚机里面肯跑的安卓模拟器能正常运行抖音全手动划屏刷 20 秒不崩了
    3 好像已经没一个安卓模拟器能让人放心在日常非 vmware 环境下安装了(包括 bluestacks)
    4 (想喷想玩这个连个随时能三清的五百以下的备机都不肯备的同志们可以跳过这一步了)
    5 正在考虑要不要整个 U 盘启动的可以直通显卡的虚机试试可不可以模拟器 /app 不崩...有时间再说了
    cnbattle
        88
    cnbattle  
    OP
       2019-09-01 21:28:59 +08:00   1
    @yankebupt go1.11 mod 很方便,而且现在国内已经有好几个代理

    我用的那个 倒能撑到 1 分钟以上,我建议是用 别公司封装出来的那些安卓模拟器,他们对手机型号 定位 啥的模拟可能会有更好一点的稳定性

    我现在在家用树莓派 2b 和一个触摸屏失效 电池 异常的手机运行,中间有个问题 就是 2b 的 usb 电压太低 一直插着手机电量会慢慢掉下来,所以我把手机拆了把屏幕的供电线拔了就可以一直运行
    hp66722667
        89
    hp66722667  
       2019-09-02 15:26:34 +08:00
    1 楼被爆了,哈哈
    Mitt
        90
    Mitt  
       2019-09-03 04:34:27 +08:00
    抖个机灵都能被你们喷成这样,两边脾性是不是都太暴了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6264 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 70ms UTC 02:36 PVG 10:36 LAX 19:36 JFK 22:36
    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