ESP32获取B站播放量和点赞数JSON空数据解决办法

1、如何获取B站播放量和点赞数

https://api.bilibili.com/x/space/upstat?mid=填入自己的UUID;
你会发现在电脑浏览器上是有数据的
在这里插入图片描述
但在ESP32上却是这样的:
在这里插入图片描述
数据是空的

2、解决办法

这是由于B站的保护机制导致的,只需要在你的http请求中加入你的浏览器相应的cookie就可以完美解决

http.addHeader("Host", "api.bilibili.com");
http.addHeader("User-Agent", "填入你的浏览器标识");
http.addHeader("Cookie", "填入你的cookie");

我是用的是vscode中plo环境,在http.bgin()后面加这三行代码

如何获取自己的浏览器标识和cookie

我使用的是微软edge浏览器,chrome应该也差不多,首先登陆B站,打开个人中心,然后在按F12开启开发者模式,找到NETWORK(网络)

在这里插入图片描述
然后点击刷新网页,找到nav,然后点击它
在这里插入图片描述
在这里插入图片描述
浏览器标识也在下面
在这里插入图片描述

到这里问题就完美解决了

但是,这个cookie应该会变的,但你又出现数据为空的时候,你又按照这个方法重新复制粘贴上去即可!!!

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是ESP32获取B站粉丝数的代码: ```c #include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* host = "api.bilibili.com"; const char* endpoint = "/x/relation/stat?vmid=your_UID"; void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); } void loop() { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; Serial.print("Connecting to host: "); Serial.println(host); http.begin(host, 80, endpoint); int httpCode = http.GET(); if (httpCode > 0) { String payload = http.getString(); Serial.println(payload); DynamicJsonDocument doc(1024); deserializeJson(doc, payload); int followerCount = doc["data"]["follower"].as<int>(); Serial.print("Follower count: "); Serial.println(followerCount); } else { Serial.print("HTTP request failed with code "); Serial.println(httpCode); } http.end(); } delay(60000); // 每分钟更新一次粉丝数 } ``` 在这个代码中,我们使用WiFi库连接到WiFi网络,并使用HTTPClient库向B站API发出GET请求,以获取B站用户的粉丝数。我们将收到的JSON响应解析为JSON对象,并从中提取粉丝计数。最后,我们将粉丝计数打印到串口。此代码每分钟更新一次粉丝数。请将“your_SSID”,“your_PASSWORD”和“your_UID”替换为您的WiFi SSID,密码和B站用户ID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值