ai
  • index
  • cursor
  • vector
  • crawl
  • crawl-front
  • DrissionPage
  • logging
  • mysql
  • pprint
  • sqlalchemy
  • contextmanager
  • dotenv
  • Flask
  • python
  • job
  • pdfplumber
  • python-docx
  • redbook
  • douyin
  • ffmpeg
  • json
  • numpy
  • opencv-python
  • pypinyin
  • re
  • requests
  • subprocess
  • time
  • uuid
  • watermark
  • milvus
  • pymilvus
  • search
  • Blueprint
  • flash
  • Jinja2
  • secure_filename
  • url_for
  • Werkzeug
  • chroma
  • HNSW
  • pillow
  • pandas
  • beautifulsoup4
  • langchain-community
  • langchain-core
  • langchain
  • langchain_unstructured
  • libreoffice
  • lxml
  • openpyxl
  • pymupdf
  • python-pptx
  • RAGFlow
  • tabulate
  • sentence_transformers
  • jsonl
  • collections
  • jieba
  • rag_optimize
  • rag
  • rank_bm25
  • Hugging_Face
  • modelscope
  • all-MiniLM-L6-v2
  • ollama
  • rag_measure
  • ragas
  • ASGI
  • FastAPI
  • FastChat
  • Jupyter
  • PyTorch
  • serper
  • uvicorn
  • markdownify
  • NormalizedLevenshtein
  • raq-action
  • CrossEncoder
  • Bi-Encoder
  • neo4j
  • neo4j4python
  • matplotlib
  • Plotly
  • Streamlit
  • py2neo
  • abc
  • read_csv
  • neo4jinstall
  • APOC
  • neo4jproject
  • uv
  • GDS
  • heapq
  • 一、lxml简介
  • 二、安装方法
  • 三、基本用法
    • 1. 解析HTML文档
  • 导入lxml的HTML解析模块
  • 定义HTML字符串
  • 欢迎
  • 解析HTML字符串为Element对象
  • 打印根节点标签名
    • 3. 查找元素与提取内容
  • 导入lxml的HTML解析模块
  • 定义HTML字符串
  • 标题
  • 解析HTML字符串
  • 查找第一个h1标签
  • 打印h1标签文本
  • 查找class为info的p标签
  • 打印p标签文本
    • 2. CSS选择器查找
  • 导入lxml的HTML解析模块
  • 定义HTML字符串
  • 解析HTML字符串
  • 使用CSS选择器查找所有class为box的div下的span
  • 遍历并打印span内容
    • 五、常见应用场景
    • 六、参考资料

一、lxml简介 #

lxml 是Python中功能强大的HTML/XML解析库,支持XPath、CSS选择器等高级用法,常用于网页抓取和数据处理。

二、安装方法 #

介绍如何安装lxml及其依赖。

# 安装lxml主库
pip install lxml

三、基本用法 #

本节介绍如何用lxml解析HTML/XML、查找元素和提取内容。

1. 解析HTML文档 #

展示如何加载和解析HTML字符串。 `python

导入lxml的HTML解析模块 #

from lxml import html

定义HTML字符串 #

html_str = """

欢迎 #

lxml示例

"""

解析HTML字符串为Element对象 #

tree = html.fromstring(html_str)

打印根节点标签名 #

print(tree.tag)


### 2. 解析XML文档
> 展示如何加载和解析XML字符串。
```python
# 导入lxml的etree模块
from lxml import etree

# 定义XML字符串
xml_str = """
苹果香蕉
"""

# 解析XML字符串为Element对象
root = etree.fromstring(xml_str)

# 打印根节点标签名
print(root.tag)

3. 查找元素与提取内容 #

展示如何查找标签和提取文本内容。 `python

导入lxml的HTML解析模块 #

from lxml import html

定义HTML字符串 #

html_str = "

标题 #

内容

"

解析HTML字符串 #

tree = html.fromstring(html_str)

查找第一个h1标签 #

h1 = tree.find('.//h1')

打印h1标签文本 #

print(h1.text)

查找class为info的p标签 #

p = tree.find('.//p[@class="info"]')

打印p标签文本 #

print(p.text)


## 四、进阶用法

> 本节介绍XPath、CSS选择器、节点操作和写入等高级用法。

### 1. XPath查找
> 展示如何用XPath表达式查找元素。
```python
# 导入lxml的HTML解析模块
from lxml import html

# 定义HTML字符串
html_str = "
  • 苹果
  • 香蕉
  • 橙子
" # 解析HTML字符串 tree = html.fromstring(html_str) # 使用XPath查找所有li节点 li_list = tree.xpath('//li') # 遍历并打印每个li的文本 for li in li_list: print(li.text)

2. CSS选择器查找 #

展示如何用cssselect方法查找元素。 `python

导入lxml的HTML解析模块 #

from lxml import html

定义HTML字符串 #

html_str = "

内容1
内容2
"

解析HTML字符串 #

tree = html.fromstring(html_str)

使用CSS选择器查找所有class为box的div下的span #

spans = tree.cssselect('div.box > span')

遍历并打印span内容 #

for span in spans: print(span.text)


### 3. 节点操作与写入
> 展示如何修改节点内容并写入新HTML。
```python
# 导入lxml的HTML解析模块
from lxml import html, etree

# 定义HTML字符串
html_str = "

原内容

" # 解析HTML字符串 tree = html.fromstring(html_str) # 查找p标签 p = tree.find('.//p') # 修改p标签文本 p.text = "新内容" # 输出修改后的HTML字符串 print(etree.tostring(tree, pretty_print=True, encoding='unicode'))

五、常见应用场景 #

lxml 常用于以下场景:

  • 网页爬虫与数据提取
  • HTML/XML数据清洗与转换
  • 结构化内容分析与批量处理
  • 自动化表单/信息采集

六、参考资料 #

推荐学习和查阅的lxml相关资料。

  • 官方文档:https://lxml.de/
  • Python中文社区:https://www.python.org.cn/

访问验证

请输入访问令牌

Token不正确,请重新输入