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

Python爬虫第二课:爬取HTML静态网页之《某某小说》 小说章节和内容完整版

Python-HTML-爬虫:爬取《某某小说》 小说章节和内容完整版

  • 所有章节和内容已成功获取
  • html 分析 详情页面
  • 代码示列
  • web前端快速入门学习地址

所有章节和内容已成功获取

  • 示列
  • 在这里插入图片描述

html 分析 详情页面

  • 在代码中获取到这个连接地址

  • 在这里插入图片描述

  • 详情页面HTML 中 正文部分

  • 在这里插入图片描述

代码示列


import requestsfrom lxml import etree#使用requests库获取网页内容
# 爬取 地址为 https://huayu.zongheng.com/showchapter/906233.html 的网页内容
# 注意,1单独爬取静态网页,2动态网页需要使用selenium
# 请熟练使用 requests库,
# 普法:政府类网站不能爬,公民信息不能保存,大公司网站不要爬,容易被追踪,涉及版权知识产权的信息不要爬,容易惹纠纷。
# 爬取 名为:《某某小说》 的小说章节def getHtmlContent(href):req = requests.get(href)# 使用lxml解析HTML内容html = etree.HTML(req.text)# 提取div中class="content"的内容# 注意:如果class属性精确等于content,使用@class="content"# 如果class属性包含content,使用contains(@class, "content")content_divs = html.xpath('//div[@class="content"]')# 如果上面的方法没有结果,尝试使用containsif not content_divs:content_divs = html.xpath('//div[contains(@class, "content")]')content_text = ""for div in content_divs:# 提取div内的文本内容text = div.text if div.text else ""# 也要提取div内所有子元素的文本for elem in div.iter():if elem.text and elem != div:text += elem.textif elem.tail:text += elem.tailcontent_text += text + "\n"return content_textif __name__ == '__main__':url = "https://huayu.zongheng.com/showchapter/906233.html"req = requests.get(url)# 使用lxml解析HTML内容html = etree.HTML(req.text)# 提取<li class="col-4">下的<a>标签内容# 注意:class属性中有空格,需要使用contains函数来匹配li_elements = html.xpath('//li[contains(@class, "col-4")]')for li in li_elements:# 查找每个li元素中的a标签a_tags = li.xpath('.//a')for a in a_tags:# 输出a标签的文本内容print("目录--->:", a.text ,"-----连接地址---->:",a.get('href'),"-----内容----->:",getHtmlContent(a.get('href')))

web前端快速入门学习地址

  • web前端快速入门学习地址
http://www.lryc.cn/news/625589.html

相关文章:

  • 【LeetCode】3655. 区间乘法查询后的异或 II (差分/商分 + 根号算法)
  • Mybatis执行SQL流程(四)之MyBatis中JDK动态代理
  • 【HTML】3D动态凯旋门
  • Leetcode 343. 整数拆分 动态规划
  • C++入门自学Day14-- Stack和Queue的自实现(适配器)
  • 神经网络中的那些关键设计:从输入输出到参数更新
  • 面试题储备-MQ篇 3-说说你对Kafka的理解
  • 图论\dp 两题
  • 设计模式笔记_行为型_命令模式
  • 【React】事件绑定和组件基础使用
  • 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进
  • java基础(十二)redis 日志机制以及常见问题
  • 2025年12大AI测试自动化工具
  • 多模态大模型应用落地:从图文生成到音视频交互的技术选型与实践
  • 【模块系列】STM32W25Q64
  • TDengine IDMP 运维指南(4. 使用 Docker 部署)
  • 第六天~提取Arxml中CAN物理通道信息CANChannel--Physical Channel
  • 5. Dataloader 自定义数据集制作
  • C语言基础:(十八)C语言内存函数
  • java17学习笔记-Deprecate the Applet API for Removal
  • 算法——质数筛法
  • yolov5s.onnx转rk模型以及相关使用详细教程
  • 假设检验的原理
  • python的社区互助养老系统
  • word如何转换为pdf
  • MFC中使用EXCEL的方法之一
  • ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video
  • 基于单片机的智能声控窗帘
  • 437. 路径总和 III
  • Qt 插件开发全解析:从接口定义,插件封装,插件调用到插件间的通信