Scrapy XPath选择器失效原因排查求助
问题原因及解决办法
- 你用的XPath过度依赖页面固定层级结构,这种写法非常脆弱——只要页面布局有微小调整(比如新增/删除div、改变嵌套顺序),选择器就会失效,远不如直接通过目标元素的class属性定位可靠。
- 目标是class为
rss-feed-description的div,正确的XPath应该直接针对这个class编写:- 若该div只有这一个class,用:
//div[@class="rss-feed-description"]//text() - 若该div带有多个class(比如
rss-feed-description extra-class),用contains匹配更稳妥://div[contains(@class, "rss-feed-description")]//text()
- 若该div只有这一个class,用:
- 原XPath用
/text()只能获取元素的直接子节点文本,如果目标div里嵌套了<p>、<span>等标签,就会漏掉内部内容,改用//text()可以获取该元素下所有后代的文本内容。
内容的提问来源于stack exchange,提问作者Olivarsson
相关产品推荐
相关产品推荐

