利用DrissionPage库写一个简单的哔哩哔哩自动评论引流脚本

发布于:2024-03-01 ⋅ 阅读:(292) ⋅ 点赞:(0)

以前利用selenium写过哔哩哔哩简单的脚本,后来数据丢失,痛苦万分,今天看到这个库了解一下便写了这个脚本。

切记做好数据备份

DrissionPage和selenium很像,但是更简单,配置也是

DrissionPage简介:

DrissionPage 是一个基于 python 的网页自动化工具。

  • 它既能控制浏览器,也能收发数据包,还能把两者合而为一。

  • 可兼顾浏览器自动化的便利性和 requests 的高效率。

  • 它功能强大,内置无数人性化设计和便捷功能。

  • 它的语法简洁而优雅,代码量少,对新手友好。

代码部分

为避免风险,将元素替换为汉字了,仅供学习
建了一个公众号,后续会在上面更新一些有用资源和笔记,大家有兴趣的话可以加一下谢谢了。
在这里插入图片描述


from DrissionPage import ChromiumPage
from urllib.parse import quote
import pickle
import time

page = ChromiumPage()
list = ["口袋觉醒"]

# 遍历list

for i in list:
 original_str = i
 encoded_str = quote(original_str)
 input_url = "https://search.bilibili.com/all?vt=25182142&keyword=" + encoded_str + "&from_source=webtop_search&spm_id_from=333.1007&search_source=5"
 page.get(input_url)
 time.sleep(3)

 # 获取所有class为bili - video - card__info - -tit的元素
 videoTitle = page.eles('.bili视频卡片__信息--标题')
 print(len(videoTitle))

 # 遍历videoTitle
 for index in range(len(videoTitle)):
     # 每次循环前重新获取元素列表,防止引用失效
     videoTitles = page.eles('.bili视频卡片__信息--标题')
     videoTitles[index].click()
     page.wait.new_tab()  # 等待新标签页出现
     tab = page.get_tab(page.latest_tab)  # 获取指定标签页对象

     # 弹幕
     barrage = tab.ele('.bpx-播放器-弹幕-输入')
     if barrage:
         barrage.click()
         barrage.input("开心")
         send = tab.ele('.bui-区域 bui-蓝色按钮')
         send.click()
         time.sleep(1)

         # 评论区
         pinglun = tab.ele('.回复框-文本区域')
         pinglun.scroll.to_see()
         pinglun.click()
         tab.ele('.回复框-文本区域 焦点').input("ll")
         publish = tab.ele('.回复框-发送 发送-激活').ele('.发送文本')
         time.sleep(3)
         publish.click()

     tab.close()
     time.sleep(3)
本文含有隐藏内容,请 开通VIP 后查看