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

flask 》》内置HTMLParser

fromhtml.parser import HTMLParserclassLinkExtractor(HTMLParser):"""一个自定义的HTML解析器,用于提取所有链接"""def__init__(self):# 初始化父类,convert_charrefs=True 是默认且推荐的设置super().__init__(convert_charrefs=True)self.links=[]# 用于存储提取到的链接defhandle_starttag(self,tag,attrs):"""重写开始标签处理方法"""# 我们只关心 <a> 标签iftag=='a':# attrs 是一个包含 (属性名, 属性值) 元组的列表forattr_name,attr_valueinattrs:ifattr_name=='href':# 找到 href 属性,将其添加到列表中self.links.append(attr_value)print(f"找到一个链接: {attr_value}")defhandle_data(self,data):"""重写文本处理方法,这里仅仅是演示,可以对文本做进一步处理"""# 对于提取链接这个任务,我们实际上不需要处理文本pass# 1. 准备一段待解析的HTML代码片段sample_html="""<divclass="container"><h1>我的收藏夹</h1><p>欢迎来到我的<ahref="https://example.com">示例网站</a></p><ul><li><ahref="https://python.org">Python官网</a></li><li><ahref="/about">关于我们</a></li><li><a>这是一个无效的链接,没有href属性</a></li></ul><imgsrc="logo.png"alt="Logo"></div>"""# 2. 创建解析器实例parser=LinkExtractor()# 3. 将HTML数据喂给解析器# 注意 feed 方法可以分多次调用,对于流式数据非常有用parser.feed(sample_html)# 4. 解析完成后,可以获取结果print("\n所有提取到的链接:")forlinkinparser.links:print(link)################ 结 果 ##########################找到一个链接:https://example.com 找到一个链接:https://python.org 找到一个链接:/about 所有提取到的链接: https://example.comhttps://python.org/about
http://www.jsqmd.com/news/710559/

相关文章:

  • 单片机串口通信入门:手把手教你配置SCON、SBUF和PCON寄存器(附代码)
  • Cortex-M55向量移位指令解析与优化实践
  • AssetStudio完全指南:轻松提取Unity资源的专业免费工具
  • 纹理压缩技术:原理、优化与应用实践
  • 实测避坑:用DSO-X 2012A示波器测RLC电路相位,这些细节让你数据更准
  • 【限时解密】VS Code Dev Containers 性能天花板突破手册:基于137个真实项目压测数据,提炼出的TOP3性能反模式与规避清单
  • 3步轻松解决腾讯游戏ACE-Guard资源占用过高问题:sguard_limit使用指南
  • 扩散模型蒸馏技术:DMD工作机制与优化实践
  • Python自动化Android设备:Google官方ADB库实战指南
  • Debian 缺少 CA 证书包
  • Dify:开源LLM应用开发平台,从零构建生产级AI应用
  • flask 》》celery 异步任务
  • 如何用GoPro WiFi Hack实现实时流媒体:低延迟直播的终极解决方案
  • G-Helper深度解析:华硕笔记本硬件控制架构与性能调优解决方案
  • OBS多平台推流终极指南:obs-multi-rtmp插件让您一键同步直播到各大平台
  • 3步解锁Mac触控板原生体验:Windows用户必读的精准触控驱动配置指南
  • SCI论文AI率紧急下调:比话降AI实测降到3%全程2026
  • 3DSident CIA版:为什么这是3DS玩家必备的系统信息检测工具?
  • 20260427紫题训练总结 - Link
  • 新概念英语第二册39_Am I all right
  • ComfyUI Manager离线安装全攻略:无网络环境下轻松管理AI绘画节点
  • AI智能体协作与自我进化:Council框架如何重塑复杂任务处理
  • 842. 将数组拆分成斐波那契序列(Medium)
  • 5分钟掌握APK-Installer:Windows上安装Android应用的终极指南
  • Scikit-learn KNN超快
  • (AUTOSAR)CANTP报文帧类型
  • 内容操作系统:构建自动化、可扩展的内容创作工作台
  • 20260427 紫题训练
  • 终极风扇控制指南:5分钟打造个性化静音电脑散热方案
  • GHelper终极指南:华硕笔记本性能优化与硬件控制完整解决方案