正则表达式 etree+xpath bs4+lxml案例
时间: 2024-12-22 20:26:41 浏览: 22
正则表达式主要用于字符串模式匹配和搜索,而ElementTree (etree) 和 XPath 是一种用于解析XML文档的标准库,它们常用于从XML数据中提取信息。BeautifulSoup (bs4) 和 lxml 是 Python 中两个常用的 HTML 和 XML 解析库。
Lxml是一个基于C语言的高性能库,它封装了libxml2和lxml.etree模块,提供了Python化的API来处理XML和HTML文档。例如:
```python
from lxml import etree
# 解析XML
doc = etree.parse('example.xml')
root = doc.getroot()
# 使用XPath查询
title = root.xpath('//book/title/text()')[0]
author = root.xpath('//author[@lang="en"]/name/text()')
print("Title:", title)
print("Author:", author)
```
BeautifulSoup则更注重易读性和简洁性,适合处理HTML文档。比如:
```python
from bs4 import BeautifulSoup
with open('example.html', 'r') as f:
soup = BeautifulSoup(f, 'lxml')
# 获取标题
title = soup.title.string
# 使用CSS选择器查询元素
author = soup.select_one('.author-name')
print("Title:", title)
print("Author:", author.text)
```
两者结合使用时,可以先用BeautifulSoup简单地抓取页面内容,然后使用lxml.etree或XPath进行深入的结构化解析。不过在实际工作中,根据需求和性能考虑,可能倾向于优先使用其中一个库。
阅读全文