爬虫中一些有用的用法
文本和标签在一个级别下
如果文本和a标签在一个级别下
比如:
# 获取a标签后的第一个文本节点text_node = a.xpath('following-sibling::text()[1]')[0].strip()
将xpath的html代码转换成字符串
etree.tostring(root, pretty_print=True, encoding="utf-8")
获取所有同级标签的最后一个
data_list = html.xpath('//ul[@class=" list-paddingleft-2"]/li[last()]')
XPath中没有直接的[-1]
语法来选择最后一个元素,而是使用last()
函数
拿到同级标签,带class类名的第三个
(//span[@class="qb"])[4]
如果要获取一个标签的第i个值到第j个值,就使用position()
(//div[@class="name-list"])[position() >= 2 and position() <= 19]
<p>邮箱:<br>kunbao@bjtu.edu.cn</p>
在这样的样式下,拿到br后面的邮箱
string(./p[contains(text(), "邮箱:")]/text()[2])