html和xml的区别
- html(超文本标记语言),用来显示数据
- xml(可扩展标记语言),用来传输和存储数据
xpath语法
-
//
的用途//a
当前html页面上的所有的abookstore//book
bookstore下的所有book元素
-
@
的使用//a/@herf
所有a的href
-
text()
的使用//a/text()
获取所有的a下的文本
-
text()
的使用//a/text()
获取所有的a下的文本//a[text()=下一页]
获取文本为下一页的a标签
-
xpath查找特定的节点
//a[1]
选择第一个a标签//a[last()]
选择最后一个a标签//a[position()<4]
选择前三个a标签
-
xpath的包含
//a[contains(text(),“下一页”)]
选择文本包含下一页三个字的a标签//a[contains(@class, "n")]
选择class属性包含n的a标签
lxml模块的使用
from lxml import etree
element = etree.HTML(html_str) # bytes或str类型的字符串
element.xpath("xpath_str") # 返回列表
etree.tostring(element) # 转化为字符串,查看与原始element是否有区别
# 数据提取时,先分组,再提取