通过charles或httpCathcer实现b站去广告|DIY b站界面
本帖最后由 小鲤鱼 于 2020-5-23 22:21 编辑### 不会用charles的看下这个(https://blog.930113.xyz/2020/05/16/0000/)
# 写这篇文章的目的
之前的帖子说了charles怎么进行rewrite,没有说明怎么使用Map和黑名单的功能,这次就用b站来教学一下
# 使用到的软件
- charles,论坛中有大佬分享了破解版,搜索一下安装即可
- charles设置ssl成功,没配制好的上面的链接配置一下
- b站
# 教程开始
本教程默认ssl已经装好并且手机已经信任了证书。
1.打开charles和b站,可以看到存在广告。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/b%E7%AB%99%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A.png)
2. 在charles找广告调用的接口,需要对包含qq的域名保持警惕,发现ios.bugly.qq.com,charles中直接右键选择block list。httpCather中左滑加入黑名单即可。还是不懂怎么操作的话去这个里面看看(https://blog.930113.xyz/2020/05/22/0014/)
3. 另外在app.bilibili.com/x/resource/show/tab 的返回数据中可以看到data下分为Top,Tab和Bottom三项。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/tab%E6%8E%A5%E5%8F%A3%E5%86%85%E5%AE%B9.png)
分别对应于下图标记的三个框。因此可以通过修改该数据来去掉一些功能。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/b%E7%AB%99tab.jpg)
4. 首先将第三步接口的数据保存到本地,并删除不想要的功能,比如想要将Top的游戏和消息入口给删除掉,另外想把Bottom的会员购给去掉,则直接删除Top下的游戏中心的内容和bottom下会员购的内容。比如下面这个就可以删除。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/tab%E5%8F%AF%E4%BB%A5%E5%88%A0%E9%99%A4%E7%9A%84.png)
5. 删除并保存完毕后,在charles中右键app.bilibili.com/x/resource/show/tab 这个接口,选择Map Local,在弹出窗口中将Map To选择刚才保存的文件即可。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/charles%E4%BF%AE%E6%94%B9tab.png)
6. 重新打开app可以看到已经修改完毕,同理也可以修改我的界面,对应接口在app.bilibili.com/x/v2/account/mine 里面,大家可以根据自己的喜好进行自定义,例如就可以设置为以下界面。这个只需在文件中删除不想要的功能即可。
![](https://dec-onemanager.herokuapp.com/%E5%9B%BE%E5%BA%8A/b%E7%AB%99/b%E7%AB%99%E6%88%91%E7%9A%84%E7%B2%BE%E7%AE%80.jpg)
7. 推荐中出现广告的接口app.bilibili.com/x/v2/feed/index,这个广告是包含在正常内容里面的,用正则表达式不太好去除,js的话容易点
8. json文件稍后更新
对于使用loon的老铁门可以使用脚本文件,对应如下:
推荐中去广告.js
```
let obj = JSON.parse($response.body)
log.data.items.forEach((element,index)=> {
if (element.hasOwnProperty('ad_web_s') || element['card_type'] == 'cm_v2') {
log.data.items.splice(index, 1)
}
}
)
body=JSON.stringify(obj)
$done({body})
```
我的界面DIY.js
```
let obj = JSON.parse($response.body)
delete obj.data.vip_section
delete obj.data.vip_section_v2
for (i=1;i<obj.data.sections_v2.length;i++){
delete obj.data.sections_v2
}
body=JSON.stringify(obj)
$done({body})
```
tab界面DIY.js:
```js
var obj = JSON.parse($response.body)
delete obj.data.top
delete obj.data.bottom
body=JSON.stringify(obj)
$done({body})
```
# 最后
有需要其他教程的兄弟去提issues哦,顺便求github star一波。世上无难事,只要肯学习,一起加油啊 这样改了之后也是要开启抓包工具才生效的,担心网速{:1_907:} 颜入肆月 发表于 2020-5-23 22:03
所实话不想接触这类东西,感觉很不好,不过用处很大,所以一直都在纠结之中……
这只是项技术,肯定不仅仅只用在这个地方,学了后拿来做数据分析也行,最后当然要支持正版 没分了,明天再来给你,哈哈 所实话不想接触这类东西,感觉很不好,不过用处很大,所以一直都在纠结之中…… 我又来学习了 大佬厉害 又来学习,期待楼主更多原创资料 嗯,感谢分享经验,学习了很多,{:1_893:} 我来学习了 大佬厉害 六铢衣 发表于 2020-5-23 21:54
没分了,明天再来给你,哈哈
一天过去了 感觉这种自己改了自己用也没啥心虚的{:301_1001:}
页:
[1]
2