REC
首页
文章分类
源码资源
技术教程
程序软件
文创娱乐
玄学修炼
关于我们
其他页面
网站统计
友情链接
用户留言
高清壁纸
关于易航
热门文章
Joe再续前缘主题 - 搭建本站同款网站
易航网址导航系统 – 功能强大,轻量易用
JsonDb-PHP轻量级文件数据库系统
Typecho一键调整网站为冬天情景插件
V免签全开源免签约码支付系统(支持:支付宝 微信 QQ)
标签搜索
PHP
Web前端
网站源码
PHP源码
Typecho
Typecho插件
课程资料
Windows程序
Android软件
武术内功
HTML源码
Web
Joe主题
Python
Windows
国漫
网络协议
MySQL
NodeJs
小说
发布
登录
注册
找到
1
篇与
浏览器
相关的结果
2025-01-23
Python 利用无头浏览器爬虫爬取笔趣阁小说
前言 用户有需求,需要将笔趣阁的小说便捷地保存为文档到本地。笔趣阁有反爬措施,小说内容为JS动态生成,Python的requests库与requests_html已无法满足需求,因此使用类似selenium但非selenium的无头浏览器爬虫实现小说爬取。 教程步骤 下载安装Chromium 明确Chromium默认安装路径 编写代码 明白爬取参数与注意事项 开始爬取 查看结果 步骤1. 下载安装Chromium 下载方式一:官网下载 -> Chromium下载链接 下载方式二:夸克网盘下载保存 -> Chromium下载器 下载后,直接双击安装器完成安装。 步骤2. 明确Chromium默认安装路径 安装后,需要明确默认安装的位置,因为代码中会用到。我的电脑用户名为AW,因此被安装在了如下路径:C:\Users\AW\AppData\Local\Chromium\Application\chrome.exe 步骤3. 编写代码 这段代码中用到的库主要为pyppeteer和python-docx,这两个库需额外下载。 最终代码如下: import asyncio import os from docx import Document from pyppeteer import launch # 禁用自动下载Chromium os.environ["PYPPETEER_SKIP_CHROMIUM_DOWNLOAD"] = "true" async def main(): wordName = "宿命之环1~3章.docx" # Word文件名 netName = "https://www.22biqu.com" # 笔趣阁域名 firstPagePath = "/biqu5251/5259122.html" # 起始页路径 endPagePath = "/biqu5251/5259124.html" # 结束页路径 catchUrl = netName + firstPagePath pageCount = 0 endFlag = False while True: try: doc = Document(wordName) except: doc = Document() browser = await launch(executablePath=r'C:\Users\AW\AppData\Local\Chromium\Application\chrome.exe', headless=True) page = await browser.newPage() await page.goto(catchUrl) element = await page.querySelector('h1.title') if element: text = await page.evaluate('(element) => element.innerText', element) doc.add_heading(text, level=1) else: print('Element not found.') content_element = await page.querySelector('#content') if content_element: paragraphs = await content_element.querySelectorAll('p') for paragraph in paragraphs: text = await page.evaluate('(p) => p.innerText', paragraph) doc.add_paragraph(text) else: print('Content element not found.') element = await page.querySelector('#next_url') next_url = "" if element: next_url = await page.evaluate('(element) => element.getAttribute("href")', element) catchUrl = netName + next_url else: print('Element not found.') await browser.close() doc.save(wordName) if endFlag: break pageCount += 1 print("已完成页码" + str(pageCount)) if next_url == endPagePath: print("匹配到结束链接:" + str(endPagePath)) print("即将结束") endFlag = True asyncio.run(main())步骤4. 明白爬取参数与注意事项 在使用上述代码时,需要注意以下参数: wordName:爬取后Word保存的名称,建议爬什么就取什么名,且加上多少章到多少章。 firstPagePath:起始页路径,比如从《宿命之环》第3章开始爬起,则路径为/biqu5251/5259124.html。 endPagePath:结束页路径,建议不要与起始页隔得太远,否则Word文件会因字数过多而卡顿。建议分章节爬取。 步骤5. 开始爬取 设置好参数后,直接运行代码即可。爬取完成后,小说将以Word文档形式保存到本地。 步骤6. 查看结果 打开保存的Word文件,章节标题和内容将整齐排列,还可通过章节导航快速定位。 结语 此教程适用于Python初学者,后续可优化为PyQt程序,提升用户体验。
技术教程
# Python
# 浏览器
# 爬虫
教主
1月23日
0
41
1