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]
2 条评论
怎么收藏这篇文章?
不错不错,我喜欢看