Closed aleeyangfu closed 2 years ago
技术上可行,但目前主要功能专注于下载视频及其附属文件(弹幕,字幕等)
或许未来添加一个--meta
选项来保存相关元数据
感谢回复,期待有进一步功能增加。还有个问题,请问作者。 在下载视频的时候,有变量是表示视频的具体链接或者稿件aid(av号,哔哩哔哩对每个视频都有av号) 我感觉自己可以试试增加这个功能,如果可以获取到具体的视频链接或者稿件的aid. 我是个新手哈哈,有很多地方不懂,忘作者不吝赐教~
@aleeyangfu 感谢你对本项目的关注👋,对你的这个问题我不是很理解,或许bilix.api.bilibili模块中的代码可供你参考,你提到的点赞数等信息其实api模块中的某些方法已经获取到了,只是没有对其进行解析和保存,所以这个功能在你理解bilix整个项目的基本框架之后应该是很容易添加的,如果有意自己实现,可以参考开发文档
嗯呢感谢知道。我的目的是批量下载b站的视频,并在下载b站每个视频的同时获取视频对应的链接,播放量,投币量等数据。我会认真阅读您提供的开发文档。感谢您的帮助
大佬,求帮助。我是爬虫小白。您可以告诉我bilix.api.bilibili模块中哪个语句(变量)可以获取点赞,播放量这些属性吗?或者您可以给一个可以参考的链接吗?
大佬,求帮助。我是爬虫小白。您可以告诉我bilix.api.bilibili模块中哪个语句(变量)可以获取点赞,播放量这些属性吗?或者您可以给一个可以参考的链接吗? 已经使用这个仓库解决 https://github.com/wolfbolin/BiliUtil
还有个问题(0-0),大佬 目前可以根据关键字进行批量下载吗
鉴于你可能是刚接触python或者爬虫这一块,我大概讲一下b站的这些信息如何获取。
在bilix.api.bilibili
模块中的get_video_info
会请求b站前端页面,拿到前端html之后,b站对于该视频的基本信息都位于一个script标签内,对应代码
async def get_video_info(client: httpx.AsyncClient, url) -> VideoInfo:
res = await req_retry(client, url, follow_redirects=True) # 请求前端页面
init_info = re.search(r'<script>window.__INITIAL_STATE__=({.*});\(', res.text).groups()[0] # 搜索信息
init_info = json.loads(init_info) # 解析信息
其中点赞,硬币等信息位于
>>> init_info['videoData']['stat']
{'aid': 899323079,
'view': 786358,
'danmaku': 3983,
'reply': 842,
'favorite': 2070,
'coin': 4231,
'share': 1879,
'now_rank': 0,
'his_rank': 0,
'like': 26448,
'dislike': 0,
'evaluation': '',
'argue_msg': '',
'viewseo': 786358}
bilix对于这部分信息没有做任何处理,所以get_video_info
的返回值中没有相关信息,所以你应当改写这个函数,使其返回这些信息,而在硬盘中保存这些信息的流程应当在downloader中去做。
已经使用这个仓库解决 https://github.com/wolfbolin/BiliUtil
bilix中所有跟网络请求相关的api方法都应当是async def的,并且第一个参数为httpx的AsyncClient实例对象,并且方法中使用该client进行网络请求,这保证了整体的统一性(对于cookie, header等东西的处理)以及对异步的支持(bilix最重要的特性优点),所以我不推荐你使用第三方api库,使用第三方库的pull request在不满足上述条件的情况下也不会被接受。推荐自己写api,这样才能保证性能最优。
另外,如果你的async技术不熟悉,我认为这属于python中较新也较为困难的内容,只有在对async有基本的认识的情况下才能理解这些设计原则,所以如果你还是新手的话暂时不建议在bilix上花过多时间,而是基础打牢,学习html,js,正则表达式,json等等最基础的知识,当你这些都融会贯通后再看看asyncio,学会后会发现bilix很简单。
还有个问题(0-0),大佬 目前可以根据关键字进行批量下载吗
如果你说的是全站搜索功能的话,我曾经也想做过,但是应该没什么人用所以放弃了
好的 感谢大佬!!!
provided in 1.0a5
您好,请问可以在批量下载视频的同时,爬取对应个视频的数据(如,弹幕数量,播放量,投币数据,视频的url,转发,收藏量..)吗?