使用selenium自动获取b站视频标题[2023]

源代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Edge("edgedriver_win32\msedgedriver.exe")
driver.get("https://www.bilibili.com/")
current_window = driver.current_window_handle
#定位元素进行搜索
driver.find_element(By.CLASS_NAME,"nav-search-input").send_keys("蔡徐坤")
driver.find_element(By.CLASS_NAME,"nav-search-btn").click()
sleep(4)
#用于切换页面
for window_handle in driver.window_handles:
    if window_handle != current_window:
        driver.switch_to.window(window_handle)
        break
    #定位元素
text = driver.find_elements(By.CLASS_NAME,"bili-video-card__info--tit")
for tt in text:
    title = tt.get_attribute("title")
    print("*********")
    print(title)

接下来一条条说

元素定位

定位可以看我之前的文章,这里使用了class定位方法

操作

driver.find_element(By.CLASS_NAME,"nav-search-input").send_keys("蔡徐坤")
driver.find_element(By.CLASS_NAME,"nav-search-btn").click()

这部分操作就是在bilibili主界面中获取搜索框界面并进行点击

 页面切换


# 获取当前窗口句柄
current_window = driver.current_window_handle

# 点击搜索按钮,打开新页面
search_button = driver.find_element_by_id("search-button")
search_button.click()

# 切换到新页面
for window_handle in driver.window_handles:
    if window_handle != current_window:
        driver.switch_to.window(window_handle)
        break

# 在新页面中执行操作
title = driver.find_element_by_xpath("//h1[text()='My Title']").text
print(title)

# 切换回旧页面
driver.switch_to.window(current_window)


 根据自己的需求改变代码即可

获取元素内容

这里我使用find_elements,可以获取所有同名元素的列表,配合循环即可获取所有内容

text = driver.find_elements(By.CLASS_NAME,"bili-video-card__info--tit")
for tt in text:
    title = tt.get_attribute("title")

这个爬取做的不是很完善,还可以加入点击进去获取播放量,三连数据等等,以及该代码只能自动获取搜索出来的一页内容。

Selenium是一个流行的自动测试工具,也可以用于网络爬虫,它能模拟浏览器操作,包括访问网页、填充表单、点击按钮等。如果你想要通过Selenium爬取B(哔哩哔哩)博主的视频,可以按照以下步骤进行: 1. **安装依赖**:首先需要安装Selenium库以及支持的浏览器驱动,如ChromeDriver或FirefoxDriver。对于Python,你可以使用pip命令安装:`pip install selenium webdriver_manager` 2. **设置浏览器**:根据你的系统选择合适的驱动,然后下载并配置到环境变量中。 3. **初始化Selenium**:导入WebDriver模块并创建一个新的浏览器实例,例如: ```python from selenium import webdriver driver = webdriver.Chrome() ``` 4. **导航到B**: ```python driver.get("https://space.bilibili.com/your_blogger_username") ``` 将`your_blogger_username`替换为实际的B用户ID或频道链接。 5. **查找视频元素**:通常视频列表会嵌套在HTML中,可以使用`find_elements_by_xpath`或CSS选择器找到特定的视频元素。例如: ```python video_list = driver.find_elements_by_css_selector(".video-item") ``` 6. **遍历和抓取信息**:遍历找到的视频元素,获取每个视频标题、链接或其他相关信息,这可能需要进一步解析HTML内容。 7. **保存数据**:将抓取的数据存储到CSV文件、数据库或者你想保存的其他地方。 8. **关闭浏览器**: ```python driver.quit() ``` 注意:爬虫行为可能会受到网反爬策略的影响,B作为知名视频平台可能会有较为严格的防爬机制,因此在使用时需遵守网的Robots协议,并尽量减少对服务器的压力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值