日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抖音直播间弹幕protocbuf分析

發布時間:2024/4/11 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抖音直播间弹幕protocbuf分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

免責任聲明:
任何可操作性的內容與本文無關,文章內容僅供參考學習,如有侵權, 損害貴公司利益,
請聯系作者,會立刻馬上進行刪除

分析下:

  • 1.protocolbuffer(以下簡稱PB)是google 的一種數據交換的格式,它獨立于語言,獨立于平臺。
  • protobuf是新型通信協議, 在抖音里的私信也是走的pro協議實現的。
  • 解析pro協議的數據包需要反序列化才可以解析。
  • 一、protobuf正向流程

    1.創建proto文件生成對應的py文件

    pycharm有編輯proto的插件,寫代碼有提示很方便,創建protobuf文件包,創建addressbook.proto文件

    syntax = "proto3";message AddressBook {repeated Person people = 1; }message Person {string name = 1;int32 id = 2;string email = 3;float money = 4;bool work_status = 5;repeated PhoneNumber phones = 6;MyMessage maps = 7;}message PhoneNumber {string number = 1;PhoneType type = 2; }message MyMessage {map<int32, int32> mapfield = 1; }

    進入這個文件的目錄

    protoc ./addressbook.proto --python_out=./


    創建add_person.py

    # 環境python3.8 from protobuf import addressbook_pb2 from google.protobuf import json_format# 添加數據信息 address_book = addressbook_pb2.AddressBook() person = address_book.people.add()person.id = 1 person.name = "safly" person.email = "safly@qq.com" person.money = 1000.11 person.work_status = Truephone_number = person.phones.add() phone_number.number = "123456" phone_number.type = addressbook_pb2.HOMEmaps = person.maps maps.mapfield[1] = 1 maps.mapfield[2] = 2# 轉成字符串 serializeToString = address_book.SerializeToString() print(serializeToString)# a = address_book.ParseFromString(serializeToString) # print(type(address_book.people))# 轉成json b = json_format.MessageToJson(address_book) print(b)

    文章轉載于: https://blog.csdn.net/weixin_49572581/article/details/118731675

    二、protobuf逆向流程

    1.抓包確定位置
    通過charles抓包

    那就已經接口是aweme/v2/feed,打開jadx打開app全局搜索關鍵詞,按住ctrl點擊這個類

    點進去就找對應的字段和編號啦

    2.根據代碼編寫相應的proto文件

    syntax = "proto3"; // 這里還需要其他的proto文件,數據很多,jadx代碼上都有,安裝ctrl點進去就是,以此類推 import 'myAwemeStructV2.proto'; import 'myExtraStructV2.proto'; import 'myLogPbStructV2.proto'; import 'myGuideWordV2.proto';message AwemeV2FeedResponse {int32 status_code = 1;int64 min_cursor = 2;int64 max_cursor = 3;int32 has_more = 4;repeated my_aweme_struct_v2.AwemeStructV2 aweme_list = 5;string rid = 6;int32 home_model = 7;int32 refresh_clear = 8;repeated my_extra_struct_v2.ExtraStructV2 extra = 9;repeated my_log_pb_structV2.LogPbStructV2 log_pb = 10;string DebugInfo = 11;repeated my_guide_word_v2.GuideWordV2 guide_word = 12;repeated my_aweme_struct_v2.AwemeStructV2 preload_ads = 13;string status_msg = 14;int32 block_code = 15;repeated my_aweme_struct_v2.AwemeStructV2 preload_awemes = 16;bool enable_re_rank = 17;bool disable_adjust_for_cache = 18; }

    3.結果

    生成相應的py文件,最后結合抓取的信息轉換成json格式示例代碼

    # 環境python2.7 info = DouyinAwemeFeed_pb2.AwemeV2FeedResponse() info.ParseFromString("你的請求proto數據") print json.dumps(MessageToDict(info, preserving_proto_field_name=True), ensure_ascii=False)

    然后讓我們看下最后的效果,最后抖音直播間實時彈幕信息就這樣獲取到了。
    有熱愛技術的小伙伴們(扣扣: 519545433)可以一起交流進步啊

    總結

    以上是生活随笔為你收集整理的抖音直播间弹幕protocbuf分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。