V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lwj253698
V2EX  ›  Python

第一次写抖音爬虫,似乎遇到了奇怪的问题,是某种反扒机制吗?

  •  
  •   lwj253698 · 2018-05-26 22:26:56 +08:00 via iPad · 14248 次点击
    这是一个创建于 2133 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己抓到的 url 的参数比网上教程的案例多了好几个属性,相同指令(比如都是用同一关键词搜索)的 url 的最后几个属性_rticket,as,cp,mas 随着时间变化,使用 python 再去 get 这些指令时返回的 json 就全是错误信息(服务器繁忙),而不是抓到的数据 json 这样了……
    现在考虑这是某种校验机制,不知道猜测是否合理。。。
    so weird,求 dalao 解救!
    39 条回复    2022-05-18 13:50:29 +08:00
    soho176
        1
    soho176  
       2018-05-26 22:30:09 +08:00
    抖音 app 咋抓的?
    lwj253698
        2
    lwj253698  
    OP
       2018-05-26 22:32:10 +08:00 via iPad
    @soho176 就抓包啊
    chengxiao
        3
    chengxiao  
       2018-05-26 22:33:18 +08:00
    这种带加密校验的 不知道服务端加密方法的话 很难破解吧
    可能只有反编译去找加密方法了
    lwj253698
        4
    lwj253698  
    OP
       2018-05-26 22:35:33 +08:00 via iPad
    @chengxiao 真的是加密吗。。。能不能绕过它呀 我现在看到的每一个 url 后面都是加了这几个属性的,唯独分享时的那个 url 好像没有
    chengxiao
        5
    chengxiao  
       2018-05-26 22:40:42 +08:00
    @lwj253698 服务端肯定有校验的呀
    soho176
        6
    soho176  
       2018-05-26 23:00:43 +08:00
    问一下站长啊,我就在本贴回复了一下,为啥我的 ip 被封了?我的联通宽带分配的固定 ip,结果现在就是无法访问了
    402124773
        7
    402124773  
       2018-05-26 23:02:30 +08:00
    这种 app 在客户端这边也都是有加密的。例如,你抓客户端登陆,肯定不是 post 用户名和密码。而是加密后的东西。现在很多 app 大部分代码都在 so 库里面。
    playniuniu
        8
    playniuniu  
       2018-05-26 23:15:09 +08:00 via iPhone   ❤️ 2
    抖音的 app 是经过加密签名的 加密函数好像在 libuser.so 里面 网上有一篇详细分析加密过程的教程 可以参考一下
    nine99
        9
    nine99  
       2018-05-26 23:19:00 +08:00
    先用抓包工具的重放一遍那个请求看看 ,一般都是你的 python 发的请求在细节上和它原来的不一样导致的。如果 确定一样也不行,你再逆向下,看这几个参数怎么来的。
    nine99
        10
    nine99  
       2018-05-26 23:20:53 +08:00
    实在不行就直接用 hook 的方法来爬吧。
    lwj253698
        11
    lwj253698  
    OP
       2018-05-27 00:50:33 +08:00
    @playniuniu 好的!!谢谢
    lwj253698
        12
    lwj253698  
    OP
       2018-05-27 00:51:39 +08:00
    @nine99 我直接赋值那个包的 url 然后用 get 方法获得 response 的 json...如果这个都不一样的话我是真的不知道还有什么可能了
    lwj253698
        13
    lwj253698  
    OP
       2018-05-27 00:53:55 +08:00
    刚刚发现一个问题,我猜抖音对指令应该是向前兼容的,也就是说有一些疑似为校验的参数貌似不赋值居然也可以... 参见 http://(hhhh)cuijiahua.com/blog/2018/03/spider-5.html/comment-page-1/#comments
    lwj253698
        14
    lwj253698  
    OP
       2018-05-27 00:55:45 +08:00
    = =实在是浪费了我六七个小时呢
    empty9
        15
    empty9  
       2018-05-27 01:26:22 +08:00
    之前研究过,逆向了他们 apk 实际上很简单,唯一坑的地方是有的 api 都是要求你登录,并验证 cookies。
    fange01
        16
    fange01  
       2018-05-27 01:27:23 +08:00
    若若的问一句,是爬抖音的视频,导入其他平台做流量吗》?
    patx
        17
    patx  
       2018-05-27 01:33:51 +08:00 via Android
    抖音我没试过,其他的视频网站只会对 url 参数做签名。
    k00baa
        18
    k00baa  
       2018-05-27 03:26:21 +08:00
    apk 逆向,然后 hook,那些参数就出来了
    locktionc
        19
    locktionc  
       2018-05-27 08:32:36 +08:00
    as,cp, mas 的算法请看这里:![]( http://7sbpmp.com1.z0.glb.clouddn.com/2018-05-27-08-28-44.png)
    _rticket 只需要根据它的格式随机生成一个字符串即可,也可以省略。
    myliyifei
        20
    myliyifei  
       2018-05-27 08:50:21 +08:00 via Android
    有一个人分享的抖音 url,因为名字的原因。我想从 url 分析,找到这个人的抖音 id,可以吗
    WinMain
        21
    WinMain  
       2018-05-27 10:01:12 +08:00
    github 上有一个很好用的,为了做视频分类,已经爬了十来万视频了。。
    https://github.com/LoadChange/amemv-crawler
    nine99
        22
    nine99  
       2018-05-27 10:44:10 +08:00
    header 的参数设了吗
    peterpei
        23
    peterpei  
       2018-05-27 10:46:28 +08:00 via Android
    @myliyifei 同样有这样的思路,借鉴了抖音 id 长度并没有发现有相同长度的 id 号,看起来是加密了。。。
    lwj253698
        24
    lwj253698  
    OP
       2018-05-27 13:45:59 +08:00 via iPad
    @locktionc read error ?
    lwj253698
        25
    lwj253698  
    OP
       2018-05-27 13:49:03 +08:00 via iPad
    @WinMain 其实我对这个分类倒是不是太在意。。。因为我接下来还会做一些筛选,打算用 opencv 筛选出只有人像上半身的视频
    lwj253698
        26
    lwj253698  
    OP
       2018-05-27 13:49:45 +08:00 via iPad
    @empty9 如何验证 cookie 呢?用那几个参数吗?
    locktionc
        27
    locktionc  
       2018-05-27 13:50:04 +08:00
    @lwj253698 用的七牛云图床,我这里可以正常显示图片。
    lwj253698
        28
    lwj253698  
    OP
       2018-05-27 13:50:18 +08:00 via iPad
    @fange01 不是呀,帮老板搜集训练集。。。
    lwj253698
        29
    lwj253698  
    OP
       2018-05-27 13:58:39 +08:00 via iPad
    @peterpei 是那个 iid 的参数吗
    lwj253698
        30
    lwj253698  
    OP
       2018-05-27 13:59:53 +08:00 via iPad
    @locktionc 嗯嗯看到了…比我想象得要简单( ・᷄ὢ・᷅ )
    lwj253698
        31
    lwj253698  
    OP
       2018-05-27 14:17:10 +08:00 via iPad
    @locktionc emmm 其实我发现其实只要把这几个参数全部省略掉就可以访问了,也是很奇怪了
    KomeijiSatori
        32
    KomeijiSatori  
       2018-05-27 15:22:16 +08:00
    ![Snipaste_2018-05-27_15-21-51.jpg]( https://i.loli.net/2018/05/27/5b0a5c9a9a2a6.jpg)

    买个 Surge 吧
    locktionc
        33
    locktionc  
       2018-05-27 16:13:38 +08:00
    @lwj253698 不能省略,因为一旦省略,他们就知道这不是正常的 App 请求。于是就可以封你。即使你用代理每一次请求都换,他也可以来一次封一次。省略了以后你的爬虫就是去送死。
    hteen
        34
    hteen  
       2018-05-27 20:39:22 +08:00
    @locktionc 为什么我抓的接口里面 mas 是 54 位 str, 你给加密方法是 50 位 str😂
    bankroft
        35
    bankroft  
       2018-06-06 20:09:45 +08:00
    我的博客写过抖音全站爬虫,发不了链接,百度搜索 bankroft
    wjx1993
        36
    wjx1993  
       2018-06-21 23:21:26 +08:00
    为什么抖音我都抓不到包?
    cjcgynpu
        37
    cjcgynpu  
       2018-06-26 12:41:32 +08:00
    嗯, 去哪儿前反爬虫工程师去了头条。
    只能说这么多了。
    lwj253698
        38
    lwj253698  
    OP
       2018-07-06 16:44:07 +08:00
    @cjcgynpu = =现在必须要登陆了 真滴要死
    Trinity888
        39
    Trinity888  
       2022-05-18 13:50:29 +08:00
    @lwj253698 楼主,现在抖音 App ,还能爬虫获取数据吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1145 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.