用selenium写一个爬取b站多页视频数据的爬虫
时间: 2024-03-15 19:43:27 浏览: 202
好的,以下是一个使用 Python 和 Selenium 爬取 B 站多页视频数据的示例爬虫:
```python
from selenium import webdriver
import time
# 初始化浏览器
options = webdriver.ChromeOptions()
options.add_argument('--headless') # 无界面模式
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=options)
# 打开B站视频网址
url = 'https://search.bilibili.com/all?keyword=%E8%B6%85%E8%83%BD%E5%8A%9B%E7%82%B9%E4%BA%AE&from_source=nav_search_new'
driver.get(url)
time.sleep(5) # 等待页面加载完毕
# 点击排序方式
driver.find_element_by_css_selector('.filter-block:nth-child(1) .filter-item:nth-child(2)').click()
time.sleep(2)
# 获取视频信息
for i in range(1, 6): # 爬取前5页视频数据
print('第', i, '页视频数据:')
videos = driver.find_elements_by_css_selector('.video-item')
for video in videos:
title = video.find_element_by_css_selector('.title').text # 视频标题
play_count = video.find_element_by_css_selector('.so-icon.watch-num').text # 播放量
like_count = video.find_element_by_css_selector('.so-icon-like').text # 点赞数
print('视频标题:', title)
print('播放量:', play_count)
print('点赞数:', like_count)
print()
# 点击下一页
if i < 5:
driver.find_element_by_css_selector('.page-wrap .next').click()
time.sleep(2)
# 关闭浏览器
driver.quit()
```
该示例爬虫使用 Selenium 模拟浏览器访问 B 站视频搜索页面,按照观看数排序,爬取前5页视频数据,并输出到控制台上。你可以将该示例代码修改为自己需要的爬虫程序。
阅读全文