首页 / 资讯中心 / 文章详情

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 ★ FEATURED ARTICLE
影刀RPA新手教程阅文起点小说数据采集实战——书籍信息与章节内容1. 认识影刀什么场景该用RPA采小说数据起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面跳转链路清晰。这种场景非常适合影刀自动化榜单页一轮抓取→详情页逐本打开采集→章节页选择性下载。和前面几个案例不同的是起点的小说详情点击会打开新标签页。影刀处理新标签页的固定模式点击前先记下原网页对象→点击后获取已打开的网页对象拿到新页面的对象→在新页面操作完→关闭新标签页→回到原页面继续循环下一个。三个网页对象变量不要混用榜单页对象 获取已打开的网页对象() For 小说 in 榜单小说列表: 详情页对象 None # 新标签页 点击小说链接 # 这会打开新标签页 详情页对象 获取已打开的网页对象(匹配方式当前选中的网页) 提取详情页数据... 关闭标签页(详情页对象) 切换回 榜单页对象 # 继续循环 End For2. 元素定位四合一分类榜单的表格型页面起点分类榜单是标准表格布局结构极其规整。这反而是最容易踩坑的——规整意味着所有行class一样元素定位时容易误匹配。榜单页每行包含9个字段排名/书名/作者/分类/字数/收藏/月票/状态/更新时间。定位时用table.rank-table tbody tr定位行元素不要选整个table取其tbody内的tr书名在tr td:nth-child(2) a作者在td:nth-child(3)字数/收藏/月票这些数字字段在各自的td中有些带单位万字/万取值时要去掉单位状态字段连载/完结有个小图标文字的组合取textContent即可关联父元素法把每一行tr作为父元素然后关联找到内部的书名a标签获取关联元素拿到书名文本和详情页链接。一个tr下面的td各取所需不用重复定位整行。正则应用字数如120.5万字需要转成数值正则\d\.?\d*匹配数字部分。3. 变量与数据类型小说数据结构小说榜列表 [] 单本小说 { rank: , # 排名 title: , # 书名 author: , # 作者 category: , # 分类 word_count: , # 总字数 favorite: , # 收藏数 monthly_ticket: ,# 月票 status: , # 连载/完结 update_time: , # 最后更新时间 intro: , # 简介从详情页获取 tags: [], # 标签从详情页获取 total_chapters: 0, # 总章节数 vip_chapters: 0, # VIP章节数 url: # 详情页地址 }数据表格在影刀中创建新建数据表格([排名,书名,作者,字数,收藏,月票,状态,更新时间])。数据表格比Excel轻量适合采集过程中的临时存储。写入方式数据表格.追加行([排名, 书名, 作者,...])。全部采集完再一次性导出到Excel。4. 流程控制三层循环区间翻页分类榜单有几十页每页几十本加上详情页是第三层。三层的流程控制要格外小心变量覆盖。分类URL https://www.qidian.com/rank/... 打开网页 分类URL 总采集数 0 目标采集数 500 # 本次计划采集500本 已采集书名 [] # 去重用 无限循环: # 翻页循环 获取相似元素 .rank-table tbody tr For tr in 相似元素: # 行循环 If 总采集数 目标采集数: 退出所有循环 End If 排名 关联获取 tr下 td:nth-child(1) 的text 书名 关联获取 tr下 a.rank-book-name 的text If 书名 in 已采集书名: Continue End If 作者 关联获取 tr下 td:nth-child(3) 的text 字数 关联获取 tr下 td:nth-child(4) 的text 收藏 关联获取 tr下 td:nth-child(5) 的text 月票 关联获取 tr下 td:nth-child(6) 的text 状态 关联获取 tr下 td:nth-child(7) 的text 更新 关联获取 tr下 td:nth-child(8) 的text 书名链接 关联获取 a.rank-book-name 的href属性 # 详情页新标签页 原有页面 获取已打开的网页对象() 点击 书名链接 详情页 获取已打开的网页对象(匹配当前选中) 提取 简介/标签/章节信息... 单本小说 {排名, 书名, 作者, ...} 小说榜列表.append(单本小说) 已采集书名.append(书名) 总采集数 1 关闭标签页(详情页) 切换回 原有页面 # 继续循环下一本 End For 点击下一页 If 下一页元素.class 包含 disabled: 退出无限循环 End If If 总采集数 目标采集数: 退出无限循环 End If End 无限循环翻页判断和之前一样class里不勾disabled到最后一页时disabled让元素校验失败走找不到元素分支退出。5. 网页自动化新标签页处理是核心起点每本书的详情页是点击书名打开的新标签页。影刀处理流程点击前先原有页面 获取已打开的网页对象()把榜单页存下来。点击后用详情页 获取已打开的网页对象(匹配方式匹配当前选中的网页)拿到新打开的详情页。注意这里的匹配方式不能是按标题/网址因为不知道每本书的具体URL。操作详情页所有用网页对象详情页的指令都在新页面执行。提取书名/简介/标签/章节等字段。关闭返回操作完用关闭标签页(详情页)→回到榜单页对象→继续循环下一行。一个关键踩坑如果网络慢点击后新标签页还没完全加载获取已打开的网页对象会拿到旧页面。解决方法点击后等待(2)或等待元素出现(详情页的某个特征元素, timeout10)确认新页面加载完再获取对象。6. 数据处理榜单数据对比分析数据分析分两个维度单日榜单快照按收藏数降序排列看头部作品。按字数分类统计100万字以下/100-300万/300万以上。按状态分连载vs完结算比例。跨日排行榜变化监控每天都抓一次榜单对比前后两天的排名变化新增上榜昨天不在今天在掉榜昨天在今天不在排名跃升上升超过10名排名暴跌下降超过10名用Excel的VLOOKUP做两个日期的关联比对。影刀流读昨天Excel→读今天Excel→数据表格做匹配→标记变化类型→写入变化报告。7. 鼠标键盘图像榜单页操作较少起点榜单页是比较干净的HTML页面元素定位都能命中的话不需要图像操作。但是某些分类页有加载更多按钮非标准分页这时候点击加载更多按钮后等待1-2秒需要单独处理未找到元素的情况Try: 点击加载更多 Catch: Continue没有更多就跳过如果按钮位置在可视区域外影刀会自动滚动到按钮位置再点击不需要手动滚动8. 进阶技能章节结构分析内容摘要进入详情页后可以进一步获取章节信息。起点章节列表是单独的一个tab页URL格式通常为https://www.qidian.com/book/{bookId}/catalog。获取章节信息的目的不是爬全部小说内容那是版权红线而是做市场分析总章节数看作品连载进度VIP章节数看付费转化节点章节平均字数每章字数稳定性更新频率最近10章的发布时间间隔章节列表页面有大量分页建议只采集前3页和最后1页的章节信息。前3页看出书前期节奏最后1页看最新章节更新频率。9. 平台实战起点中文网 Excel报告起点采集实战步骤选中基准分类如玄幻→抓取前10页榜单每页20本200本→逐个打开详情页获取补充信息→写入Excel。单次采集200本书每本详情页花费2-3秒总耗时约15-20分钟。严格控制速度不要对服务器造成压力。Excel市场分析报告在Excel中生成摘要头部作品Top 10表格分类下连载率连载占比vs完结占比平均字数和收藏分布新书入榜趋势同比上周home.linyan.cloud 提供了起点小说数据采集的完整模板和分析报告生成器。10. 系统联动采集→分析→报告→推送影刀采集 200本基本信息 → Excel原始数据 Python分析模块pandas: - 按分类汇总字数分布 - 计算收藏-月票相关性 - 识别新锐作品短期收藏增速Top → 生成分析报告Excel 摘要文本 影刀读取摘要 → 飞书定时推送计划任务设置每周一早上8点自动运行一次采集一周的榜单变化。分析报告自动归档到D:/book_reports/目录。11. 工程化规范采集频率单次运行不要超过500本书。每本书详情页操作后等待2-3秒。去重策略书名作为去重主键不够可能重名用书名作者联合主键。新标签页资源管理每处理完一个详情页就关闭标签页不要堆着几十个标签。实测超过15个标签页时浏览器内存占用飙升影刀操作可能卡顿。异常处理详情页加载超时→记入失败列表→跳过继续下一本章节页被反爬拦截(验证码)→暂停整个流程通知人工处理网络断开→在当前book处理完后优雅退出不要丢数据日志规范每10本书打一次日志进度: 10/200, 当前: 《xxx》。12. 速查表 / 常见报错报错原因解决获取已打开的网页对象失败新标签页未完全加载点击后加等待或等待特征元素出现元素校验失败详情页部分书详情页结构不同降低属性匹配门槛只用短CSS选择器新标签页操作后循环回到旧页面时失败网页对象变量混淆操作新页面前先存旧页面对象采集速度太慢每本书详情页交互过多能走API就走API不用逐页解析排行榜数据不完整部分行有隐藏/折叠检查DOM里隐藏的display:none元素字数变科学计数法长数字写入Excel设置文本格式的列Cannot read property of null部分字段在详情页可能不存在加try-except默认值兜底采集参数建议单次运行上限500本每本间隔2-3秒每小时不超过300次详情页请求。内容标签#影刀RPA #起点中文网 #小说数据采集 #新标签页处理 #Excel报告 #飞书通知作者林焱
阅读完成 · 觉得有帮助?
咨询建站