活动地址:CSDN21天学习挑战赛
lxml是python的一个解析库,支持HTML和XML格式的解析,XPath,全称XML Path Language,即XML路径语言,很明显是通过路径来定位,通俗点你可以想象成一个树状结构,会有很多节点分支。
pip install lxml
from lxml import etree
url = "test.xml"
# 读取文本
html = etree.parse(url)
# html序列化
result = etree.tostring(html).decode('utf-8')
print(result)
from lxml import etree
data = """
com.alibaba
fastjson
1.2.68
"""
# 初始化
html = etree.HTML(data)
# 字符串序列化为html
result = etree.tostring(html).decode('utf-8')
print(result)
print(type(result))
XPath(XML Path Language - XML路径语言),它是一种用来确定XML文档中某部分位置的语言。
Xpath以XML为基础,提供用户在数据结构树中寻找节点的能力,Xpath被很多开发者亲切的称为小型查询语言。
表达式 | 作用 |
---|---|
nodename | 选取此层级节点下的所有子节点 |
/ | 代表从根节点进行选取 |
// | 可以理解为匹配,就是在所有节点中选取此节点,直到匹配为止 |
. | 选取当前节点 |
… | 选取当前节点上一层(上一级目录) |
@ | 选取属性(也是匹配) |
/html/body/div
|/html/body/div1
用|
来表示多选
路径表达式 | 解释 |
---|---|
/html/body/div /html/body/div1 | 表示从根节点开始寻找,标签与标签之间/表示一个层级 |
/html//div | 表示多个层级 作用于两个标签之间(也可以理解为在html下进行匹配寻找标签div) |
//div | 从任意节点开始寻找,也就是查找所有的div标签 |
./div | 表示从当前的标签开始寻找div |
xpath_helper(0积分下载)下载地址:https://download.csdn.net/download/walykyy/86405082
from lxml import etree
import requests
# 初始化
url = 'http://www.biqugse.com/61353/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
# 字符串序列化为html
response = requests.get(url=url, headers=headers)
html = response.text.encode('utf-8')
html_xpath = etree.HTML(html)
result = html_xpath.xpath('//*[@id="intro"]/text()[1]')
print(result)