基于DrissionPage、yt_dlp等工具,爬取 B站https://www.bilibili.com/v/popular/weekly/?num=1的所有视频,并保存到本地
时间: 2024-09-24 16:08:04 浏览: 137
基于DrissionPage和yt_dlp这样的工具来爬取B站(bilibili.com)的视频信息,通常需要几个步骤:
1. 安装必要的库:首先,你需要安装`drission`(用于访问网页)、`pytube3`(处理YouTube-DL风格下载链接)和相关的依赖项。你可以通过pip安装它们:
```
pip install drission pytube3 requests beautifulsoup4
```
2. 使用DrissionPage获取数据:创建一个DrissionSession并登录B站(如果你有cookie或需要验证码),然后导航到指定的URL `https://www.bilibili.com/v/popular/weekly/?num=1`。你可以解析页面内容,查找视频卡片元素,特别是包含视频标题、链接等信息的部分。
3. 解析视频信息:从网页源码中找到视频ID(BV开头)或直接的播放地址,这通常隐藏在JavaScript代码或iframe标签中。这时可以使用BeautifulSoup或其他HTML解析库来提取。
4. 下载视频:使用yt_dlp或pytube3,通过视频链接下载视频。例如,对于BV号的视频,先解析出其对应的播放url,然后像下面这样下载:
```python
from pytube import YouTube
video_url = "https://www.bilibili.com/video/BV[video_id]"
yt = YouTube(video_url)
video_stream = yt.streams.first() # 或选择合适的质量流
video_stream.download(output_path="videos")
```
5. 保存数据:将下载的视频文件保存在本地目录,如`"videos"`文件夹中。
请注意,由于版权和网站政策,未授权的大量爬虫操作可能会被封禁。在实际操作前,应确保你的爬虫行为遵守了B站的使用条款,并尊重版权。
阅读全文