Python 正则表达式实现 HTML 解析和提取
使用Python的re模块和正则表达式可以方便地实现HTML的解析和提取。以下是详细的实现方法和示例代码。
HTML解析
HTML解析可以通过正则表达式来实现,常见的HTML标签格式如下:
<tagname attribute1="value1" attribute2="value2">content</tagname>
其中,tagname表示标签名,attribute1和attribute2表示属性名,value1和value2表示属性值,content表示标签内容。
使用正则表达式可以轻松地从HTML代码中提取各个标签的内容。以下是一个实现HTML解析的示例代码:
import re html = '<html><body><h1>pidancode.com</h1><p>皮蛋编程</p></body></html>' # 解析HTML pattern = r'<(\w+).*?>(.*?)</\1>' result = re.findall(pattern, html) # 打印各个标签的内容 for tag, content in result: print(f'{tag}: {content}')
输出结果为:
h1: pidancode.com p: 皮蛋编程
该示例代码使用了正则表达式中的\1,表示引用前面匹配到的第一个组,即(\w+)。因此,该正则表达式匹配的是
HTML提取
HTML提取可以通过正则表达式来实现,常见的HTML标签属性格式如下:
html
<tagname attribute1="value1" attribute2="value2">content</tagname>
其中,attribute1和attribute2表示属性名,value1和value2表示属性值。
使用正则表达式可以轻松地从HTML代码中提取各个标签的属性值。以下是一个实现HTML提取的示例代码:
import re html = '<a href="https://pidancode.com">pidancode.com</a>' # 提取HTML标签属性值 pattern = r'<a.*?href="(.*?)".*?>.*?</a>' result = re.findall(pattern, html) # 打印提取到的属性值 print(result)
输出结果为:
['https://pidancode.com']
该示例代码使用了正则表达式中的.*?,表示非贪婪模式匹配任意字符。因此,该正则表达式匹配的是标签中的href属性值。
通过正则表达式的方式,可以方便地从HTML代码中提取各种信息,如标签名、标签内容、属性名、属性值等。
相关文章