以前利用selenium写过哔哩哔哩简单的脚本,后来数据丢失,痛苦万分,今天看到这个库了解一下便写了这个脚本。
切记做好数据备份
文章目录
- DrissionPage简介:
- 代码部分
DrissionPage和selenium很像,但是更简单,配置也是
DrissionPage简介:
DrissionPage 是一个基于 python 的网页自动化工具。
-
它既能控制浏览器,也能收发数据包,还能把两者合而为一。
-
可兼顾浏览器自动化的便利性和 requests 的高效率。
-
它功能强大,内置无数人性化设计和便捷功能。
-
它的语法简洁而优雅,代码量少,对新手友好。
代码部分
为避免风险,将元素替换为汉字了,仅供学习
建了一个公众号,后续会在上面更新一些有用资源和笔记,大家有兴趣的话可以加一下谢谢了。
from DrissionPage import ChromiumPage
from urllib.parse import quote
import pickle
import timepage = ChromiumPage()
list = ["口袋觉醒"]# 遍历listfor i in list:original_str = iencoded_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))# 遍历videoTitlefor 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)