爬虫中一些有用的用法

文本和标签在一个级别下

如果文本和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]

邮箱:
[email protected]

在这样的样式下,拿到br后面的邮箱

string(./p[contains(text(), "邮箱:")]/text()[2])

你可能感兴趣的:(爬虫,xpath)