使用带text()的XPath获取目标文本节点的Text<_>属性配置方法咨询
问题解答
你说的Text<_>属性如果是指各类爬虫/解析框架里的文本选择器属性,完全可以通过配置规则获取指定的单个文本节点,下面是两种常用的实现方式:
- 优先推荐用更稳定的相对定位规则,避免写死索引导致页面结构变动后规则失效:
- 如果你要取的是
<a>标签后方带机构编号的文本(03-0179440),可以配置XPath规则为./a/following-sibling::text()[1] - 如果你要取的是最后面的机构别名
(UNIVERSITY OF VERMONT),可以配置XPath规则为./div[contains(@class, "fa")]/following-sibling::text()[1]
- 如果你要取的是
- 如果确定页面结构不会变更,直接用你在控制台验证通过的索引定位规则也可以,直接把
//tbody/tr[2]/td[2]/text()[7]配置到对应选择器的路径参数里即可
以Scrapy框架的选择器用法为例,代码参考如下:
# 直接获取指定文本节点的内容 target_content = response.xpath("//tbody/tr[2]/td[2]/text()[7]").get()
只要你配置的XPath规则最终指向的是单个目标文本节点,Text属性就只会返回该节点的内容,不会自动合并其他同级文本节点的内容。
内容的提问来源于stack exchange,提问作者Steve Gray
相关产品推荐
相关产品推荐

