当前位置: 首页 > news >正文

第三方模块requests,文件IO、正则表达式,通过函数封装爬虫应用采集数据

import requests import re # 设置请求头,避免被识别为爬虫 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0", } #定义函数下载指定章节的内容,chapter_url作为参数提供下载章节的url def download_single_chapter(chapter_url): # 用requests.get方法发送GET请求到指定的chapter_url,并传入请求头headers。响应结果存储在response对象中。 response = requests.get(chapter_url, headers=headers) # 检查响应的状态码是否为200 if response.status_code == 200: #提取响应的文本内容(HTML),并将其存储在 html_txt 变量中 html_txt = response.text # 使用正则表达式获取标题和内容 pattern_title = re.compile(r'<title>(.*?)</title>', re.DOTALL) pattern_content = re.compile(r'<div id="chaptercontent" class="Readarea ReadAjax_content">(.*?)</div>',re.DOTALL) # 匹配标题和内容 title_match = pattern_title.search(html_txt) content_match = pattern_content.search(html_txt) with open('当前章节.txt', 'w', encoding='utf-8') as file: if title_match: #.group(1): 从匹配对象中提取第一个括号捕获组的内容 file.write(title_match.group(1)) file.write("\n\n") if content_match: file.write(content_match.group(1)) file.write("\n") file.write( "---------------------------------------------------------------------------------------------") file.write("\n") if title_match and content_match: print(f"章节 {title_match.group(1)} 下载成功") else: print("无法提取章节内容") else: print(f"无法下载章节,HTTP状态码: {response.status_code}") if __name__ == "__main__": # 替换为实际的章节网址 chapter_url = "https://www.3bqg.cc/book/60417/1.html" download_single_chapter(chapter_url)

运行结果

自动创建的text在当前python项目的文件夹中

http://www.jsqmd.com/news/526426/

相关文章:

  • 学习日记DAY10
  • 2026年无刷电机厂家推荐:工业自动化高精度需求靠谱品牌与用户口碑分析 - 品牌推荐
  • ESP32S3开发板实战:5分钟搞定USB摄像头Wi-Fi图传(含OV2640配置指南)
  • Pixel Mind Decoder 企业级部署架构设计:高可用与负载均衡实践
  • 如何通过服务优化提升Windows 10系统响应速度?完整技术指南
  • 2026年靠谱的包装机工厂推荐:四川包装机销售厂家推荐 - 品牌宣传支持者
  • 物联网串口综述
  • Comsol模拟一维光子晶体Zak相位计算:基于MPH文件与Matlab代码的解决方案
  • Redux-Actions 完全贡献指南:从入门到精通的开源参与教程
  • Unity游戏开发实战:如何用阿里云语音API实现智能NPC对话(附完整C#代码)
  • 企业微信直播回放下载全攻略:从网页源码到火狐插件,手把手教你搞定
  • 无刷电机厂家如何选不踩坑?2026年靠谱推荐工业设备用高功率密度型号 - 品牌推荐
  • Python之a0-baas-sdk包语法、参数和实际应用案例
  • java篇5-java的字符串
  • 学网络安全需要有基础吗?
  • Freetronics LCD库深度解析与STM32移植指南
  • 【无人机(UAV)路径规划】改进灰狼优化算法I-GWO、GWO、GJO、SCA多种策略Matlab仿真,附参考文献
  • vscode-file-nesting-config 未来发展方向:智能化文件管理的新趋势
  • 2026年无刷电机厂家推荐:机器人自动化高精度传动靠谱品牌及用户口碑真实评价 - 品牌推荐
  • RomM API终极指南:完整接口文档和开发实战
  • 2026年平价保湿精华水推荐榜:补水洗面奶/补水爽肤水/卸妆洗面奶/去黑头洗面奶/控油洗面奶/敏感肌洗面奶/氨基酸洗面奶/选择指南 - 优质品牌商家
  • 墨语灵犀一键部署与Node.js环境配置:构建全栈AI应用
  • 【国家级遥感平台内部培训材料】:用xarray+rioxarray+pyproj三剑合璧,10分钟完成时序NDVI/SWI/FCI指数动态生成
  • 如何快速解决Spyc YAML解析器的10个常见问题:PHP开发者的完整指南
  • 树莓派Pico RP2040 I2C实战:从AT24C02到OLED屏的驱动解析
  • FRCRN语音降噪效果深度评测:对比传统方法与深度学习模型
  • 企业级西安旅游系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 无刷电机厂家如何选不踩坑?2026年靠谱推荐电动工具用高性能高功率型号 - 品牌推荐
  • C#毕业设计下载(全套源码+配套论文)——基于C#+asp.net+sqlserver的教务管理平台设计与实现
  • T2T基因组组装实战:如何利用Hi-C数据提升染色体水平组装质量(附最新研究案例)