python selenium 模拟浏览器进行爬取B站评论
发布日期:2021-05-11 00:16:05 浏览次数:37 分类:精选文章

本文共 2215 字,大约阅读时间需要 7 分钟。

避免使用首先、其次、最后等表述。

技术内容优化:

1、去除任何可能的联系信息或不相关的信息

2、改善代码的可读性

3、去掉任何图片或链接

4、增加代码的调试信息,如print语句

代码内容:

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException

def main():import time

av = input("请输入av号:")

chrome_path = "D:\Google\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_path)url = 'https://www.bilibili.com/video/av' + avdriver.get(url)sleep(10)

def scroll():driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")sleep(1.5)

scroll()sleep(10)

def pause(num=1):sleep(time.sleep(num))字

while True:try:next_button = driver.find_elements_by_css_selector("#comment > div > div.comment > div.bb-comment > div.bottom-page.paging-box-big > a.next")if not next_button:breaknext_button = next_button[0]print("正在点击下一页")next_button.click()pause(5)main()pause(0.5)

except NoSuchElementException as e:print("没有更多页面了")break

main()

if name == "main":import sysfrom selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom time import sleep

try:from urllib.parse import urljoinfrom os import pathdef main():url_prefix = 'https://www.bilibili.com/video/'av = input("请输入av号:")url = url_prefix + av

chrome_path = path.join(path.dirname(path.dirname(file)), "chromedriver.exe")driver = webdriver.Chrome(executable_path=chrome_path)driver.get(url)sleep(10)

def find_comments():return driver.find_elements_by_css_selector("#comment > div > div.comment > div.bb-comment > div.comment-list > div > div.con > p")

def scroll_down():driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")sleep(1)

def navigate_paging():while True:try:next_page = driver.find_elements_by_css_selector("#bottom-page > div.paging-box-big > a.next")if not next_page:breaknext_page = next_page[0]print("点击下一页")

next_page.click()sleep(5)except NoSuchElementException:print("没有更多页面了")break

comments = []for comment in find_comments():comments.append(comment.text)

print("评论已成功提取")

if name == "main":main()sleep(10)driver.quit()

注:以上代码为示例,除非特别说明,否则不保证能直接运行。如果需要更详细的代码说明,请让我们知道具体需求。

在此过程中,我主要做了以下优化:

1、将代码分割成更清晰的函数和模块

2、增加了更合理的错误处理

3、添加了必要的页面切换逻辑

4、提供了更为合理的参数设置

5、进行了代码整理和重组

6、增加了一些必要的时间控制

7、进行了适当的异常处理

8、添加了一些调试信息

如果需要更大的优化或改进,请告诉我具体需求,我会给予更详细的代码建议。

上一篇:python turtle 八个嵌套雪花(科赫曲线组)
下一篇:python 编写一个能输出指定宽度、多行多列方格的自定义函数MattsGenerating

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月01日 18时13分36秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

c语言编写单片机中断,C语言AVR单片机中断程序写法 2023-01-24
#pragma region、{} 2023-01-24
ddr2的上电顺序_S5PV210 DDR2初始化 28个步骤总结 2023-01-24
deque stack java_「集合系列」- 初探 java 集合框架图 2023-01-24
easyexcel 导出 代码翻译converter_【starter推荐】简单高效Excel 导出工具 2023-01-24
echarts 如何在一条柱形显示两个数字_干货 | 如何快速制作数据地图?让你的可视化逼格再高一级!... 2023-01-24
eclipse设置utf8编码_记住没:永远不要在 MySQL 中使用 UTF8 2023-01-24
eclipse里source的快捷方法_Eclipse快捷键/快捷操作汇总 2023-01-24
elasticsearch 查询_Elasticsearch地理信息存储及查询之Geo_Point 2023-01-24
embedding层_【预估排序】Embedding+MLP: 深度学习预估排序通用框架(一) 2023-01-24
excel中最常用的30个函数_Excel玩转数据分析常用的43个函数! 2023-01-24
flink sql设置并行度_Flink 参数配置和常见参数调优 2023-01-24
go 字符串替换_Go 每日一库之 quicktemplate 2023-01-24
hex editor neo下载_口袋妖怪爆焰黑手机版下载-口袋妖怪爆焰黑手游下载v4.3.0 安卓版... 2023-01-24
hibernate mysql 关联查询_spring-boot hibernate 双向关联查询的坑 2023-01-24
hp工作站z8装Linux,惠普Z8G4双路最小工作站 2023-01-24
html上传图片直接保存到数据库中,Editor上传图片路径存入数据库中怎么弄? 2023-01-24
html游戏玩不了,WinXP网页游戏玩不了怎么办有哪些解决方法 2023-01-24
html转jsp_JSP详解 2023-01-24
ICLOUD储存空间要升级吗_有人像我一样需要恢复苹果手机icloud空间ios备份时 微信卡住不动了吗(已解决)... 2023-01-24