手機端抓包環境準備
- 手機APP抓包分析 環境搭建(夜神模擬器+burp/fidder);
- 瀏覽器中F12用手機界面模式重新加載,看network信息,部分手機瀏覽器可以訪問的功能可以以此方式獲取。
基本結構
-
整個社區生態:用於短視頻上傳、點贊、分享等,記錄美好生活,也加快多種生活方式的傳播。這是一個15秒音樂短視頻社區,視頻資源海量,未進行視頻特徵細分,存在營銷號通過不同方式實現漲粉,轉發等目的。
- 登陸與註冊:用戶每個用戶需要登陸後才能發現更多視頻、點贊、評論、關注等,一般通過手機號接收驗證碼的方式進行登陸,如果是第一次登陸則需要完成信息設置密碼等,之後可以通過密碼登陸,也可以通過第三方QQ等實現登陸。總的來說,抖音提供多種登錄選擇方式:手機號登錄、第三方登錄、密碼登錄,突出登錄功能,弱化註冊過程。
- 在手機模擬器中登陸一直出現“相同圖片點擊”的驗證過程,並且一段時間內嘗試發送手機驗證碼的次數不能超過3-4次,將會提示發送太頻繁。
-
爬取與註冊限制:
-
基本使用:查看用戶信息,關注用戶,觀看熱點視頻,點贊、評論視頻,轉發視頻
- 請求內容基本結構:抖音APP的包結構名爲
com.ss.android.ugc.aweme
,在請求中一般被放在User-Agent中;在APP請求的URL信息中包含了大量的設備信息,通過param的方式附加在URL後。- 基本url請求 包含 p1-dy.byteimg 其中可以從p1到p9,用於傳輸圖片,分配 /large/ /img/ /obj/ ,還有p3.pstatp等,v1-dy 等用於傳輸視頻信息,一般在ixigua.com後綴上
- 國外訪問 tiktokv.com
- 每一個鏈接中包含簽名信息
- 常見Use-Agent: "com.ss.android.ugc.aweme/380 (Linux; U; Android 8.0.0; zh_CN_#Hans; MHA-AL00; Build/HUAWEIMHA-AL00; Cronet/58.0.2991.0)"
- 常見的設備信息參數 common_params = {
"iid": self.device_info['iid'],
"idfa": self.device_info['idfa'],
"vid": self.device_info['vid'],
"device_id": self.device_info['device_id'],
"openudid": self.device_info['openudid'],
"device_type": self.device_info['device_type'],
"os_version": self.device_info['os_version'],
"os_api": self.device_info['os_api'],
"screen_width": self.device_info['screen_width'],
"device_platform": self.device_info['device_platform'],
"version_code": CONFIG['APPINFO']['version_code'],
"channel": CONFIG['APPINFO']['channel'],
"app_name": CONFIG['APPINFO']['app_name'],
"build_number": CONFIG['APPINFO']['build_number'],
"app_version": CONFIG['APPINFO']['app_version'],
"aid": CONFIG['APPINFO']['aid'],
"ac": "WIFI",
"pass-region": "1", # new
# "js_sdk_version": "1.3.0.1"
}
常用接口鏈接
hot_energy_url = 'https://api.amemv.com/aweme/v1/hotsearch/positive_energy/billboard/'
hot_trend_url = 'https://api.amemv.com/aweme/v1/category/list/'
topic2video_url = 'https://api.amemv.com/aweme/v1/challenge/aweme/'
https://aweme.snssdk.com/aweme/v1/user/ # 用戶詳細信息
https://aweme.snssdk.com/aweme/v1/user/following/list/ # 關注列表
https://aweme.snssdk.com/aweme/v1/user/follower/list/ # 粉絲列表
https://aweme.snssdk.com/aweme/v1/aweme/post/ # 用戶發佈的視頻
https://aweme.snssdk.com/aweme/v1/aweme/favorite/ # 用戶喜歡的視頻
https://aweme.snssdk.com/aweme/v1/aweme/detail/ # 視頻詳細信息
https://aweme.snssdk.com/aweme/v1/comment/list/ # 視頻評論信息
https://aweme.snssdk.com/aweme/v1/music/detail/ # 音樂原聲的詳細信息
https://aweme.snssdk.com/aweme/v1/music/aweme/ # 音樂原聲的視頻列表
https://aweme.snssdk.com/aweme/v1/hot/search/list/ # 熱搜榜
https://aweme.snssdk.com/aweme/v1/hotsearch/aweme/billboard/ # 視頻榜(固定20條)
https://aweme.snssdk.com/aweme/v1/hotsearch/music/billboard/ # 音樂榜(固定30條)
https://aweme.snssdk.com/aweme/v2/user/recommend/ # 推薦用戶列表(需要登錄)
- //抖音隨機刷新視頻列表
url = "https://aweme-eagle.snssdk.com/aweme/v1/feed/?type=0&max_cursor=0&min_cursor=0&count=6&volume=0.0&pull_type=1&need_relieve_aweme=0&filter_warn=0&req_from&is_cold_start=0&longitude=120.388862&latitude=36.090072&ts=1545468521&js_sdk_version=1.5.4&app_type=normal&manifest_version_code=380&_rticket=1545468521415&ac=wifi&device_id=53039791462&iid=54915619827&mcc_mnc=46000&os_version=8.0.0&channel=update&version_code=380&device_type=MHA-AL00&language=zh&uuid=865296034887289&resolution=1080*1808&openudid=3a6f6cdf79dc8965&update_version_code=3802&app_name=aweme&version_name=3.8.0&os_api=26&device_brand=HUAWEI&ssmix=a&device_platform=android&dpi=480&aid=1128&as=a195cfd199360cbaed8411&cp=f667cb5e91d818ade1IgQk&mas=0139d6baba15f4cc628baffe83a99fad7c8c8c2c1c26a68646c60c" - url = "https://aweme.snssdk.com/aweme/v1/search/item/?keyword=漫畫&offset=10&count=10&source=video_search&is_pull_refresh=1&hot_search=0&ts=1546931874&js_sdk_version=&app_type=normal&openudid=8cec4b81deae6417&version_name=4.0.0&device_type=OPPO R11&ssmix=a&iid=57005283726&os_api=19&mcc_mnc=46007&device_id=59343989226&resolution=720*1280&device_brand=OPPO &aid=1128&manifest_version_code=400&app_name=aweme&_rticket=1546931874668&os_version=4.4.2&device_platform=android&version_code=400&update_version_code=4002&ac=wifi&dpi=240&uuid=863064010113316&language=zh&channel=aweGW"
- headers = {
"Host": "aweme.snssdk.com",
"Connection": "keep-alive",
"Cookie": "install_id=57005283726; ttreq=1$4a0dbe45de94b2c261ba4470caadb235daaeba62; odin_tt=4a4e27b35ee49fea4b87c0bf97cc6045521eb2cb1a6eba2bd57a992e322ce1fe144690bbd3f5b070d4e64fdb4022a3b3; sid_guard=7f0b613c53151e8f663d5667aa2ab4a8%7C1546931191%7C5184000%7CSat%2C+09-Mar-2019+07%3A06%3A31+GMT; uid_tt=ba8a9bf01162a3fe45ecee17a222ac70; sid_tt=7f0b613c53151e8f663d5667aa2ab4a8; sessionid=7f0b613c53151e8f663d5667aa2ab4a8",
"Accept-Encoding": "gzip",
"X-SS-REQ-TICKET": "1546931874666",
"X-Tt-Token": "007f0b613c53151e8f663d5667aa2ab4a83581edb01c9fc144a35eb8deee9efdf03906d2746df2a2fc862d2c264ae23dfd36",
"sdk-version": "1",
"X-SS-TC": "0",
"User-Agent": "com.ss.android.ugc.aweme/400 (Linux; U; Android 4.4.2; zh_CN; OPPO R11; Build/NMF26X; Cronet/58.0.2991.0)",
"X-Gorgon": "01815c6f0a7f59ff5db3810469ab03ed9145722c3a62c70571",
"X-Khronos": "1546931874",
"X-Pods": "a1bf8bdca715069f27f9ab3662c19ccec595b790",
"Content-Length": "0"
} - headers_video = {
"Range": "bytes=0-163840",
"Vpwp-Type": "preloader",
# "Vpwp-Raw-Key": "v0200f840000bf5svk8ckqbibu1vt8jg_h264_540p",
"Vpwp-Flag": "0",
"Accept-Encoding": "identity",
"Host": "aweme.snssdk.com",
# "Connection": "Keep-Alive",
"User-Agent": "okhttp/3.10.0.1"
}
視頻
- 視頻鏈接主要包含以下:v1-dy.ixigua.com,v3-dy.ixigua.com,v6-dy.ixigua.com,v9-dy.ixigua.com,大部分視頻鏈接包含expires的參數,用於表示過期時間,一般url有效期是一個小時
加密
- 每一個查看的鏈接上包含,一些加密信息,通過簽名參數: as, mas, ts, cp等加密算法與協議
其他信息
- APP通過定期的向
ib-hl.snssdk.com
發送/service/2/app_log/
的POST請求,實現向服務器發送本機相關的一些信息 - APP向
restapi.amap.com
請求地理信息 - 一般URL中傳遞了
retry_type=no_retry
的內容都屬於上傳本地設置,狀態等信息到服務器上。 - 通過向p3-dy.byteimg.com,去獲取抖音的對應規格的圖片信息 /aweme/300x400/17aba000e40f0f37b5ae3.jpeg,此時User-Agent 爲com.ss.android.ugc.aweme/620 (Linux; U; Android 5.1.1; zh_CN; SM-G955F; Build/JLS36C; Cronet/58.0.2991.0)