使用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")

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值