千家信息网

python如何爬取抖音用户详细数据

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了python如何爬取抖音用户详细数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、分析请求用户数据的api1.
千家信息网最后更新 2026年11月03日python如何爬取抖音用户详细数据

这篇文章主要介绍了python如何爬取抖音用户详细数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、分析请求用户数据的api

1. 用户数据抓包

首先在搭建好的环境中通过Fiddle抓取用户数据包。

2. 用户数据包分析

2.1. 请求信息分析

  • 请求头字段 | 字段 | 字段值 | | --- | --- | | 请求方法 | GET | | 请求的api | GET后面的 | | 请求的协议 | api后面的,系http1.1 | | 请求的目的主机域名 | aweme-eagle.snssdk.com | | 连接信息 | keep-alive | | Cookie | 你自己的cookies | | Accept-Encoding 编码信息 | gzip | | X-SS-QUERIES | 请求的query | | token | 你自己的token | | sdk版本 | 1 | | User-Agent | 用户代理 | | X-Khronos | 咱也不知道是啥,但是本质上就是个时间戳 | | X-Gorgon | 加密验证的部分 | | X-Pods | 咱也不知道是啥,但是貌似没有用 |

  • 请求的api分析


我们知道了请求的api以及请求头里面都包含了哪些信息,我们就可以通过手动构造对应的请求参数来爬取用户的数据了。我已经在前面的文章获取到了1W+ 的用户的uid以及sec_user_id的数据了,然后我们就可以通过这些数据来爬取用户的详细数据。

2.2. 响应信息分析




二、获取用户数据

1.构造请求api

在文章《抖音爬虫教程,从0到1,获取抖音用户数据》 我们已经介绍了爬取抖音关注列表的api及其构造方法,其实获取用户详细信息和获取用户的关注列表的api基本一致,主要都是需要我们自行填充用户的user_id以及用户的sec_user_id还有一大堆的时间戳信息,其他的信息都是不变的。下面我们构造获取用户详细信息的api

def construct_api(user_id, _rticket, ts, sec_user_id):      """      api 构造函数      :param user_id: 用户的id      :param _rticket: 时间戳      :param ts: 时间戳      :param sec_user_id: 用户的加密的id      :return: api      """      api = "https://aweme-eagle.snssdk.com" \            "/aweme/v1/user/?" \            "user_id={}" \            "&retry_type=no_retry" \            "&iid=1846815477740845" \            "&device_id=47012747444" \            "&ac=wifi&channel=wandoujia_aweme1" \            "&aid=1128&app_name=aweme" \            "&version_code=630" \            "&version_name=6.3.0" \            "&device_platform=android" \            "&ssmix=a&device_type=HUAWEI+NXT-AL10" \            "&device_brand=HUAWEI&language=zh" \            "&os_api=26&os_version=8.0.0" \            "&openudid=b202a24eb8c1538a" \            "&manifest_version_code=630" \            "&resolution=1080*1812" \            "&dpi=480&update_version_code=6302" \            "&_rticket={}" \            "&js_sdk_version=1.16.3.5" \            "&ts={}" \            "&sec_user_id={}" \            "".format(user_id, _rticket, ts, sec_user_id)      return api

2.构造请求头

上文我们已经分析了请求头,请求头的构造也比较方便,大部分内容都是固定的,需要我们填充的主要还是几个时间戳以及对应的X-Gorgon,其中X-Gorgon的构造方法比较复杂,但是要注意填入正确的Cookie和Token你才能获得可用的X-Gorgon,否则你的Gorgon就是不可用的。下图是请求头里面的主要信息:

下面我写了一个构造请求头的函数:

def construct_header(user_id, sec_user_id, cookie, query, token, user_agent, _rticket, ts):      """      构造请求头,需要传入的参数如下      :param user_id: 要爬取的用户的uid      :param sec_user_id: 要爬取的用户的加密的id      :param cookie: cookie      :param query: 请求的query      :param token: 你的token      :param user_agent: 请求的user_agent      :param _rticket: 时间戳(毫秒级)      :param ts: 时间戳(秒级)      :return: 构造好的请求头:headers      """      api = construct_api(user_id, _rticket, ts, sec_user_id)      headers = {            "Host": "aweme-eagle.snssdk.com",            "Connection": "keep-alive",            "Cookie": cookie,            "Accept-Encoding": "gzip",            "X-SS-QUERIES": query,            "X-SS-REQ-TICKET": _rticket,            "X-Tt-Token": token,            "sdk-version": "1",            "User-Agent": user_agent      }      x_gorgon = get_gorgon(api, cookie, token, query)      headers["X-Khronos"] = ts      headers["X-Gorgon"] = x_gorgon      print(headers)      return headersdef get_gorgon(url, cookies, token, query):      """      获取headers里面的X-Gorgon      :param url: 请求的api      :param cookies: 你的cookie      :param token: 你的token      :param query: 你的query      :return: gorgon      """      # 发起请求获取X-Gorgon      headers = {            "dou-url": url,  # 填写对应的请求的api            "dou-cookies": cookies,  # 填写你的cookies            "dou-token": token,  # 填写你的token            "dou-queries": query  # 填写你的请求的queries      }      gorgon_host = "http://8.131.59.252:8080"      res = requests.get(gorgon_host, headers=headers)      gorgon = ""      if res.status_code == 200:            print("请求成功")            res_gorgon = json.loads(res.text)            if res_gorgon.get("status") == 0:                  print("成功获取 X-Gorgon")                  print(res_gorgon.get("X-gorgon"))  # 你就可以用来爬数据了                  gorgon = res_gorgon.get("X-gorgon")            else:                  print("获取 X-Gorgon 失败")                  print(res_gorgon.get("reason"))                  raise ValueError(res_gorgon.get("reason"))      else:            print("请求发送错误/可能是你的网络错误,也可能是我的错误,但是大概率是你那边的错误")            raise ValueError("请求发送错误/可能是你的网络错误,也可能是我的错误,但是大概率是你那边的错误")      return gorgon

3. 请求头弄好了我们就可以获取用户数据了

def get_user_detail_info(cookie, query, token, user_agent, user_id, sec_user_id):      """      爬取用户数据      :param cookie: 你自己的cookie      :param query: 你自己的query      :param token: 你自己的token      :param user_agent: 你自己的User-Agent      :param user_id: 用户的uid      :param sec_user_id: 用户的加密的uid      :return: response      """      _rticket = str(time.time() * 1000).split(".")[0]      ts = str(time.time()).split(".")[0]            api = construct_api(user_id, _rticket, ts, sec_user_id)      headers = construct_header(user_id, sec_user_id, cookie, query, token, user_agent, _rticket, ts)      print(api)      req = request.Request(api)      for key in headers:            req.add_header(key, headers[key])      with request.urlopen(req) as f:            data = f.read()      return gzip.decompress(data).decode()

4. 解析用户数据

根据上面对响应数据的分析,其对应的响应数据是json格式的,而且数据特别多,分析了一下,我找了一些对我比较有用的数据:

# 用户的抖音号unique_id=345345345O# 用户的user_iduid=103600654544# 用户的 sec_user_idsec_uid=MS4wLjABAAAA2_HUlxau0riJ8UBMwyd_bUtA8yzKdWepfg9nUc5wQy0# 头像地址avatar_uri=26e880003aefb8cddd496# 用户的昵称nickname=成都潮人榜# 用户的签名signature=谢谢关注❤# 用户的出生日期birthday=1995-01-01# 用户的国家country=中国# 用户的省份province=四川# 用户的城市city=成都# 用户所在的区域district=武侯# 用户的粉丝数follower_count=929219# 用户的关注数following_count=15# 发布的抖音数量aweme_count=453# 发布的动态数量dongtai_count=480# 用户点赞的视频数favoriting_count=322# 总共被点赞的次数total_favorited=14900700

5. 下面就可以爬取数据了

if __name__ == '__main__':    cookie = "" # 你自己的cookie    token = "" # 你自己的token    query = "" # 你自己的query    user_agent = "" # 你自己的user-agent    user_id = 103600654544    sec_user_id = "MS4wLjABAAAA2_HUlxau0riJ8UBMwyd_bUtA8yzKdWepfg9nUc5wQy0"    res = get_user_detail_info(cookie,query, token, user_agent, user_id, sec_user_id)    print(res)

感谢你能够认真阅读完这篇文章,希望小编分享的"python如何爬取抖音用户详细数据"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

用户 数据 信息 错误 分析 时间 篇文章 加密 字段 方法 成功 函数 参数 可以通过 就是 数量 文章 有用 概率 网络 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网佳科技有限公司 互联网电商科技 贷财互联网科技 天津摩尔互联网科技 齐家互联网科技有限公司 上海卓越科技 互联网 互联网科技公司做什么 山东吉时兔互联网科技有限公司 互联网公司会议桌创意科技软装饰 科技互联网的估值 互联网教育科技公司vipkid 北京华百购互联网科技有限公司 互联网时代科技改变生活 佛山市拉法互联网科技有限公司 每天都有哪些好的互联网科技 南通创西澳互联网科技有限公司 互联网相关科技技术 杭州融税互联网科技有限公司 科技互联网专业工作会议发言稿 互联网科技创业有什么好项目 湖北九亚互联网络科技有限公司 河南云网互联网络科技有限公司 互联网科技公司电话 奇酷互联网科技 迪茉互联网科技 顺网科技2021年互联网排名 互联网科技教育视频 互联网科技的全部知识 江苏互联网智能科技产品出厂价 互联网科技企业商标注意事项
0