- 1.XPath概述
- 2.XPath语法
- 3.浏览器中使用XPath
- 3.1.在浏览器中使用XPath
- 4.Python中使用XPath的使用
- 4.1.lxml库:使用XPath解析HTML
- 4.2.selenium库:使用XPath定位元素、获取属性等
- 解析XML的一种语言(HTML其实是XML的子集),通常用于解析HTML
- 几乎所有语言都有和XPath相关的包或库(几乎支持所有语言)
- 除了XPath,还有许多其他的python库可用于XML解析,如BeatifulSoup、Ixml、DOM等
归根结底,XPath其实就只有三大类:
- 层级:/直接子级,//跳级
- 属性:@属性访问
- 函数:contains( )、text( )等
浏览器中打开F12,点击Elements以后按Ctrl + F,便可唤出搜索栏
在其中输入XPath表达式以选定元素
右键元素 ==> Copy ==> Copy XPath/Copy Full Xpath
- Copy XPath:若属性中有id,直接给到id有关的xpath表达式
- Copy Full XPath:给出完整的XPath表达式
# Copy XPath //*[@id="kw"] # Copy Full XPath /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input4.Python中使用XPath的使用 4.1.lxml库:使用XPath解析HTML
导入lxml库
from lxml import etree
在成功爬取了HTML后,将其以字符串形式,作为etree.HTML()的参数
以下为从本地HTML文件读取:
# open函数读取html,入读方式为"r",注意编码为"utf-8"
htmlFile = open("../html/test.html", "r", encoding="utf-8")
# 使用read()读取文件所有内容
htmlStr = htmlFile.read()
# 关闭文件
htmlFile.close()
# etree.HTML()获取html实例
html = etree.HTML(htmlStr)
获取html实例后,便可以调用xpath()定位元素(返回值是数组)
- 获取标签内容需要在最后加上/text( )
- 定位单个元素的话,在最后要记得加上下标
selenium库对XPath的应用在下篇文章讲到:
05.基于selenium的数据爬取



