pycharm中使用xpath的方式

导入模块
from lxml import etree
创建etree对象
etree1=etree.HTML(response.content.decode('utf-8'))
使用xpath语法
text_list=etree1.xpath('/html/body/div/div/a[2]/div/div/div[2]/p/text()')

/ :表示从根节点开始定位,每个/表示的是一个层级 类似绝对定位

//:表示的是多个层级,可以表示从任意位置开始定位 类似相对定位

/标签名[@属性名=“属性值”] :表示属性定位 例:/div[@class=“abc”]

/标签名1/标签名2[索引值]:标签索引定位 例:/div/p[1] 表示 div标签下的第一个p标签 ,注意这里的索引是从1开始的而不是0开始

/text():表示取定位到标签中直系的文本,返回的是一个列表数据

//text(): 表示取定位到标签中的非直系或非直系的文本(即取定位到标签中的所有文本内容),返回的是一个列表数据

/标签名/@属性名:表示取定位到的标签中属性的值 例:/div/@class

./:表示从上一级标签开始定位

|:表示或者 用于在多个xpath语法中 例:('/div/p/text() | /div/a/text()') 返回的也是一个列表

通用处理中文乱码的解决方案

变量名.encode('iso-8859-1').decode('gbk')

某个标签索引大于某个值或小于某个值的标签

比如所有div标签中从第二个往后的所有标签:/div[position()>1]

最后修改:2023 年 07 月 31 日
如果觉得我的文章对你有用,请随意赞赏