[toc]

1、解析原理

1.1、加载

本地html或者网络html信息加载到etree对象中

1.2、定位

通过etree解析对象,进行xpath表达式进行元素定位

1.3、提取

通过定位到元素,进行提取属性值或者文本值

2、安装

2.1、通过命令安装

pip install lxml 

2.2、通过插件进行安装

file -> settings 定位到该位置,进行搜索安装
image.png

2.3、提示安装

在py文件直接导入,会爆红,根据提示进行安装
image.png

3、使用流程

3.1、导入

from lxml import etree

3.2、加载

3.2.1、加载本地

response_tree = etree.parse('./588.html', etree.HTMLParser())

3.2.2、加载网络

response_text = response.text
response_tree = etree.HTML(response_text)

3.3、定位提取

list = response_tree.xpath("//div[@class='key-list imglazyload']/div[@class='item-mod ']")

3.4、持久化

进行持久化到数据库或者文本中

    with open("./58.txt", "w", encoding="utf-8") as fs:
        fs.write(house_info)

4、xpath语法

4.1、“.”当前目录

.代表当前目录

item_list = ht.xpath(".//div[@class='infos']/a")

4.2、“..”上级目录

..代表上级目录

4.3、“/”直系子代

通过使用“/”进行定位当前元素的直系子代元素

response_tree.xpath("//div[@class='key-list imglazyload']/div[@class='item-mod ']")

4.4、“//”后代

//表示当前元素的后代元素,返回值存在多个子代

item.xpath(".//span/text()")

4.5、text()提取文本

# 提取直系文本
item.xpath(".//span/text()")

# 提取后代文本
ht.xpath(".//a[@class='favor-pos']/p//text()")

4.6、@定位属性

通过使用tagName[@attrName='attrValue']进行定位属性

ht.xpath(".//a[@class='favor-pos']/p//text()")

image.png
image.png

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。