nodejs 某音douyin网页端搜索接口及x_bogus、a_bogus(包含完整源码)(2024-06-13)

2024-06-14 23:04

本文主要是介绍nodejs 某音douyin网页端搜索接口及x_bogus、a_bogus(包含完整源码)(2024-06-13),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言


    x_bogus或a_bogus算法大概是对数据、ua、时间戳、浏览器的几个指纹进行计算,拿到一个110位大数组,然后转字符,在头部再添加十二位随机字符,再进行魔改的base64加密。
问:抖音的x_bogus、a_bogus值有什么用?

1.抖音所有数据的校验都离不开x_bogus、a_bogus。

2.抖音作为最大的短视频平台他的数据是十分多且有用的。

3.获取批量抖音的数据,例如评论、无水印视频、弹幕监听、直播间抢货等。
在浏览器按f12可找到搜索接口地址。

一、接口地址:

    api_url=`https://www.douyin.com/aweme/v1/web/search/item/?device_platform=webapp&aid=6383&channel=channel_pc_web&search_channel=aweme_video_web&sort_type=${sort_type}&publish_time=${publish_time}&keyword=${keyword}&search_source=switch_tab&query_correct_type=1&is_filter_search=${is_filter_search}&from_group_id=&offset=${offset}&count=10&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=114.0.0.0&browser_online=true&engine_name=Blink&engine_version=114.0.0.0&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=0.3&effective_type=2g&round_trip_time=1600&webid=7119735414450456103&msToken=${msToken}`;

二、参数说明


0、搜索结果按页返回,每页有10个视频

1、offset


    搜索分页的偏移;0为第一页,10为二页,20第三页。

2、search_id


   第二页还需要带上search_id参数;search_id由上一页返回。

3、sort_type


搜索结果排序
排序说明:
综合排序
sort_type=0
最新发布
sort_type=2
最多点赞
sort_type=1

4、publish_time
按发布时间过滤条件

不限
publish_time=0
一天内
publish_time=1
一周内
publish_time=7
半年内
publish_time=182

三、完整源代码

//----------------------------------------------模块初始化----------------------------------------------------
const User_Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36";
const fs = require("fs");
const cookie= fs.readFileSync("./cookie.txt").toString('utf8');
//console.log(cookie);
let msToken="";
const https = require('node:https');
exports.get_search_data=get_search_data;//----------------------------------------------调用模块初始化----------------------------------------------------
//技术支持:byc6352或metabycf 39848872 telegram:byc01
const m_x_bogus = require('./x_bogus.js');
//-------------------------------------------------------------------------------------------------------------
async function get_search_data(keyword,offset,search_id,sort_type,publish_time) {try {msToken=getCookie("msToken");if(keyword===undefined || offset===undefined){return;}keyword=encodeURIComponent(keyword);if(offset>0 && search_id===undefined){return;}let is_filter_search=0;if(sort_type>0 || publish_time>0)is_filter_search=1;//-----------------------------------------------------------------------------------------------------let api_url="";if(offset===0)api_url=`https://www.douyin.com/aweme/v1/web/search/item/?device_platform=webapp&aid=6383&channel=channel_pc_web&search_channel=aweme_video_web&sort_type=${sort_type}&publish_time=${publish_time}&keyword=${keyword}&search_source=switch_tab&query_correct_type=1&is_filter_search=${is_filter_search}&from_group_id=&offset=${offset}&count=10&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=114.0.0.0&browser_online=true&engine_name=Blink&engine_version=114.0.0.0&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=0.3&effective_type=2g&round_trip_time=1600&webid=7119735414450456103&msToken=${msToken}`;elseapi_url=`https://www.douyin.com/aweme/v1/web/search/item/?device_platform=webapp&aid=6383&channel=channel_pc_web&search_channel=aweme_video_web&sort_type=${sort_type}&publish_time=${publish_time}&keyword=${keyword}&search_source=switch_tab&query_correct_type=1&is_filter_search=${is_filter_search}&from_group_id=&offset=${offset}&search_id=${search_id}&count=10&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=114.0.0.0&browser_online=true&engine_name=Blink&engine_version=114.0.0.0&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=0.3&effective_type=2g&round_trip_time=1600&webid=7119735414450456103&msToken=${msToken}`;let api_url_bogus=m_x_bogus.get_x_bogus(User_Agent,api_url);let refer_url=`https://www.douyin.com/search/${keyword}?publish_time=${publish_time}&sort_type=${sort_type}&source=tab_search&type=video`;let path=api_url_bogus.replace("https://www.douyin.com","");const options = {hostname: 'www.douyin.com',port: 443,path: path,method: 'GET',headers: {'Content-Type': 'application/json','Accept':'application/json','Referer': refer_url,'User-Agent': User_Agent,'Cookie':cookie,},};//console.log(api_url_bogus);const req = https.request(api_url_bogus,options, (res) => {console.log(`STATUS: ${res.statusCode}`);console.log(`HEADERS: ${JSON.stringify(res.headers)}`);res.setEncoding('utf8');var body="";res.on('data', (chunk) => {body+=chunk;});res.on('end', () => {console.log(body.length);console.log(body);});});req.on('error', (e) => {console.error(`problem with request: ${e.message}`);});req.end();}catch (e){console.error(`problem with get_search_data: ${e.message}`);}
}function getCookie(cname)
{let name = cname + "=";//var cc=cookie;//var ca = cc.split(';');let ca = cookie.split(";");for(var i=0; i<ca.length; i++){var c = ca[i].trim();if (c.indexOf(name)==0) return c.substring(name.length,c.length);}return "";
}//------------------------------------------------test----------------------------------------
get_search_data("易梦玲",0,undefined,0,0);

四、运行结果(截取一部分)


其中"logid":"202406131910573707A1B160EA8C199E6D"为下一页的search_id。

STATUS: 200
HEADERS: {"server":"Tengine","content-type":"application/json; charset=utf-8","content-length":"531430","connection":"close","date":"Thu, 13 Jun 2024 11:10:59 GMT","vary":"Accept-E
ncoding","x-tt-logid":"202406131910573707A1B160EA8C199E6D","bd-tt-error-code":"0","tt_stable":"1","status_code":"0","x-envoy-response-flags":"-","rip":"[fdbd:dc01:a:226::103]:9891"
,"to-cluster":"default","to-idc":"lf","x-ms-token":"vfLq1X_9QfRtlkT8HvKWLj2_qQq22ISgZ9L26kVcjKszk4XJUK4LTuiJkAHpJOwxTIfp6I0Xi2tdqVVPMEniXuhcZ6nAs0fnXZIhgUnvXTXlWt6WNQnXqNw=","cooki
e_ttwidinfo_webid":"7119735414450456103","x-janus-info":"rDbyyBfD-5ujgb_-Rm2AvHfE6XHmPkRGTpZk5vIe2rQXmYBeqJPNn5-CWYn_hWOD8HiRBLTA52Ec7mlGA-wzTsVmRgFBM5YujJwlHu8rJO-xRks7hiAZPGX9_7d
PARQUV_d4lyQeXaxY9yz_MuMPFz-ziJ-JU9WUAq2dnODwD7e24YYCQZ89r2O3IgzuF3emnCE1qFGFlwEUQnhiid8ttWenfJccISYM8ZjfHrqqz5FS4xvYVy5U58JrWWEZ_f5FkyAcT81A8Xb2IauMU3Y1AP8sLloOOMQI","set-cookie":
["msToken=vfLq1X_9QfRtlkT8HvKWLj2_qQq22ISgZ9L26kVcjKszk4XJUK4LTuiJkAHpJOwxTIfp6I0Xi2tdqVVPMEniXuhcZ6nAs0fnXZIhgUnvXTXlWt6WNQnXqNw=; expires=Thu, 20 Jun 2024 11:10:57 GMT; domain=do
uyin.com; path=/; secure; SameSite=None"],"strict-transport-security":"max-age=31536000; includeSubDomains; preload","access-control-allow-credentials":"true","server-timing":"inne
r; dur=1156, cdn-cache;desc=MISS,edge;dur=0,origin;dur=1207","x-tt-trace-host":"01f5a7f74fb1f6a9381bdfd3524d31f903fb2661dd81165567ee8841b0f493a95e97ae933aaf2e119127ed3fe917d68f1231
1bd9a07ee6257497b6f8c11d2797a3c757c5198c00f4d88e6a94558d76e4ae1144ec7aa9620815dc08830db7c0195e","x-tt-trace-tag":"id=03;cdn-cache=miss;type=dyn","x-tt-trace-id":"00-240613191057370
7A1B160EA8C199E6D-237EFF9838FEB7F4-00","via":"live4.cn6822[1207,0]","timing-allow-origin":"*","eagleid":"b6f7ecb417182770579434102e"}
523342
{"status_code":0,"aweme_list":null,"has_more":1,"cursor":10,"guide_search_words":[{"id":"6548652907695183112","word":"路人视角","type":"recom","query_id":"6581242608947844356","att
ached_text":null},{"id":"6585020614170400004","word":"马思唯","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6598250693897770253","word":"壁纸","type"
:"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6537235052961469700","word":"手势舞","type":"recom","query_id":"6581242608947844356","attached_text":null},{"
id":"6543530651927188740","word":"方圆","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6818788051146282254","word":"一拍即合的我们","type":"recom","qu
ery_id":"6581242608947844356","attached_text":null},{"id":"6538978456762324227","word":"素颜","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"652757201
8743743752","word":"虞书欣","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6543531834616059149","word":"仿妆","type":"recom","query_id":"6581242608947
844356","attached_text":null},{"id":"6537292146192438541","word":"跳舞","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6595888160872338695","word":"同
款","type":"recom","query_id":"6581242608947844356","attached_text":null},{"id":"6598867558164600071","word":"gq红毯","type":"recom","query_id":"6581242608947844356","attached_text
":null},{"id":"6537253792889443597","word":"综艺","type":"recom","query_id":"6581242608947844356","attached_text":null}],"extra":{"now":1718277059000,"logid":"202406131910573707A1B
160EA8C199E6D","fatal_item_ids":[],"search_request_id":""},"log_pb":{"impr_id":"202406131910573707A1B160EA8C199E6D"},"backtrace":"f8zSdzdPBhl57DL+Qz8rLw==","data":[{"type":1,"aweme
_info":{"aweme_id":"7377673797048012083","desc":"穿你想穿的,吃你想吃的\n#毕业了出去玩就这么穿","create_time":1717748546,"author":{"uid":"58878877918","nickname":"易梦玲","avatar_t

五、调试环境 


(图1 nodejs调用搜索接口返回数据)

这篇关于nodejs 某音douyin网页端搜索接口及x_bogus、a_bogus(包含完整源码)(2024-06-13)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061749

相关文章

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下