B站关键词视频信息爬虫(可直接运行)

本文详细描述了如何使用Python爬虫技术,通过requests和BeautifulSoup库从Bilibili搜索结果中抓取视频标题、发布时间、链接、up主信息等,并进一步深入爬取视频的点赞、投币、收藏等数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.爬取内容

2.代码及解析

1)导入库

2)发送请求

 3)解析结果

 4)进入视频链接,爬更多内容


1.爬取内容

搜索关键词:跨年

视频标题、发布时间、视频链接、up主id、up主首页链接

2.代码及解析

1)导入库

import requests  # 导入用于发送HTTP请求的requests库
from bs4 import BeautifulSoup # 导入用于解析HTML的BeautifulSoup库
import pandas as pd # 导入用于处理数据的pandas库

2)发送请求

网址(只需修改文字即可),page为第1页,设置请求头(跳过反爬)

# 网址
url = "https://search.bilibili.com/all?vt=53655423&keyword=跨年&page=1"
# 设置请求头,用于模拟浏览器发送请求
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
# 发送 HTTP 请求并获取响应内容
response = requests.get(url=url, headers=headers)
soup = BeautifulSoup(response.content, "html.parser")

 3)解析结果

       在B站搜索界面,按F12或者浏览器右上角菜单,可以打开开发者工具然后在网页结构中,鼠标移动到指定位置,左边会有对应的颜色显示,当前网页结构是哪部分内容,然后找到自己想要的内容, 就可以开始解析了

# 解析搜索结果
items = soup.find_all("div", class_="bili-video-card__info __scale-disable")

# 创建空的DataFrame,用于存储解析后的数据
titles = pd.DataFrame([], columns=['标题'])
times = pd.DataFrame([], columns=['发布时间'])
urls = pd.DataFrame([], columns=
要使用Python爬取BBilibili)并解析网页获取所有视频信息,你可以按照以下步骤进行: 1. **安装必要的库**: - `requests`:用于发送HTTP请求。 - `BeautifulSoup`:用于解析HTML内容。 - `re`:用于正则表达式匹配。 你可以使用以下命令安装这些库: ```bash pip install requests beautifulsoup4 ``` 2. **发送搜索请求**: 使用`requests`库发送搜索请求到B,并获取响应内容。 3. **解析网页内容**: 使用`BeautifulSoup`解析HTML内容,并提取视频信息。 4. **提取视频信息**: 提取视频的标题、链接、播放量等信息。 以下是一个示例代码,演示如何实现上述步骤: ```python import requests from bs4 import BeautifulSoup import re def get_video_info(keyword): # 构造搜索URL search_url = f"https://search.bilibili.com/all?keyword={keyword}" # 发送请求 response = requests.get(search_url) response.encoding = 'utf-8' # 解析HTML soup = BeautifulSoup(response.text, 'html.parser') # 查找所有视频项 videos = soup.find_all('li', class_=re.compile('video-item')) # 提取视频信息 video_list = [] for video in videos: title = video.find('a').get('title') link = video.find('a').get('href') play_count = video.find('span', class_='so-icon').text video_list.append({'title': title, 'link': link, 'play_count': play_count}) return video_list # 示例使用 keyword = 'Python' video_info = get_video_info(keyword) for video in video_info: print(f"标题: {video['title']}") print(f"链接: {video['link']}") print(f"播放量: {video['play_count']}") print('---') ``` 这个代码会搜索B上与关键词相关的视频,并提取每个视频的标题、链接和播放量。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值