可以使用以下语法来提取文本内容中包含“中国银行“并且长度大于20的文本数据:
//text()[contains(.,'中国银行') and string-length(.)>20]
这个XPath表达式用到了以下函数:
text():表示当前节点的所有文本子节点。
contains(.,'中国银行'):判断文本内容中是否包含“中国银行”。
string-length(.)>20:判断文本内容长度是否大于20。其中,“.”代表当前节点,也就是要提取文本的节点。
最终结果会返回所有符合以上两个条件的文本内容。
可以使用以下XPath定位找到文本内容为"下一页"的标签:
//a[text()='下一页']
上述语句中,//a 表示选择所有的链接标签。[text()='下一页'] 表示在该选定集合中筛选出文本内容为“下一页”的元素。
如果您想限制只在某个特定元素下搜索,可以将//替换为该元素的XPath路径。例如,如果要在带有id属性值为pagination的div元素中搜索下一页链接:
//div[@id='pagination']//a[text()='下一页']
其中 //div[@id='pagination'] 用于在id为“pagination”的 div 元素内搜索子元素。
通过确定父级标签找兄弟标签:
xpath("//strong[text()='公司名称:']/../span/text()").get("").strip()
这个 XPath 表达式的含义是:
//: 从根节点开始搜索
strong: 元素名为 strong 的元素
[text()='公司名称:']: 其中包含文本内容为“公司名称:”(注意这里直接判等,如果 strong 标签内有其他字符可能会匹配不成功)
/..: 向上查找一级,即到这个 strong 标签的父标签
/span: 在 strong 标签的父标签中寻找一个子标签名为 span 的元素
/text(): 获取该 span 元素的文本内容
.get(''): 获取获取到的元素文本内容。如果元素不存在则返回空字符串。
.strip(): 去除内容首尾的空白符和换行符等。
pycode
77.0k