通过正则表达式解析HTML入门指南
来源:互联网 发布:烟台网络广播 编辑:程序博客网 时间:2024/06/08 23:48
一个完整的HTML网页通常是由很多标签组成的,通过正则表达式我们可以筛选出我们想要的内容。一般我们利用正则表达式来获取标签中的内容或者属性值,获取到内容和属性值之后,我们还可以利用正则表达式进一步获取想要的内容。
python中使用正则表达式解析HTML的步骤:
- 首先需要引入re模块
- 根据所要获取的内容或者属性值定义一个正则表达式
- 利用re库提供的方法获取满足所定义的正则表达式的内容或属性值
下面是一个简单的demo,包含了内容的获取,以及属性值的获取:
# coding: utf-8# @author: huangwenrenimport redef getContent(): html = ''' <tr> <th>性別:</th> <td>男</td> </tr> ''' print(html) # 正则表达式获取<tr></tr>之间内容 res_tr = r'<tr>(.*?)</tr>' m_tr = re.findall(res_tr, html, re.S | re.M) for line in m_tr: print(line) # 获取表格第一列th 属性 res_th = r'<th>(.*?)</th>' m_th = re.findall(res_th, line, re.S | re.M) for mm in m_th: # 默认end='\n' print(mm, end='') # 获取表格第二列td 属性值 res_td = r'<td>(.*?)</td>' m_td = re.findall(res_td, line, re.S | re.M) for nn in m_td: print(nn)def getAttribute(): html = ''' <td> <a href="https://www.baidu.com/articles/zj.html" title="浙江省">浙江省主题介绍</a> <a href="https://www.baidu.com//articles/gz.html" title="贵州省">贵州省主题介绍</a> </td> ''' # 获取链接属性方法1 print(re.findall(r'<a href="(.*?)".*?</a>', html)) # 获取链接属性方法2 # ?<= 之前 的字符串内容需要匹配表达式才能成功匹配 # ?= 之后 的字符串内容需要匹配表达式才能成功匹配 print(re.findall(r'(?<=href=\").+?(?=\")', html))if __name__ == '__main__': getContent() getAttribute()
点击可以查看更多关于python解析HTML表达式的用法
点击可以查看正则表达式的详细说明
阅读全文
0 0
- 通过正则表达式解析HTML入门指南
- 解析HTML正则表达式
- 解析HTML正则表达式
- HTML解析之一:正则表达式
- oracle正则表达式----通过解析商品名称学习
- java-grok通过正则表达式解析日志
- Lua解析Html的正则表达式Demo
- java正则表达式解析html示例分享
- html,正则表达式30分钟入门
- 通过正则表达式提取HTML正文(java实现)
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- Python正则表达式指南
- python正则表达式指南
- python正则表达式指南
- Python正则表达式指南
- linux正则表达式指南
- 稀疏矩阵的快速转置
- redis有序集合相关命令
- 在ATMEL sam系列中使用fromelf命令生成bin文件却生成了一个文件夹原因及解决
- python 不可与自带模块重名
- 如何在线倍速观看百度网盘学习视频并快速做笔记
- 通过正则表达式解析HTML入门指南
- QT时间相关的使用(日期相减问题)
- java微信开发-token验证
- Compass的用法
- rpm&yum命令&增加yum源
- 读书04《番茄工作法图解上》
- ubuntu16.04+cuda9.0+cudnn6.0提示找不到libcud***.so的错误
- 自定义view刮刮乐
- spring cloud之config的简单配置(shh方式)