如何使用xpath获取所有h2元素的下一个元素的文本?

时间:2018-11-29 22:40:18

标签: html xpath scrapy

我有如下所示的HTML。

<div class="topics">
<h2>Topics 1</h2>
News
Sports
<h2>Topics 2</h2>
Entertainment
Business
</div>

我希望能够使用["News\nSports", "Entertainment\nBusiness"]获得文本XPath。我该怎么做?

//div[contains(@class,"topics")]/h2/text()给了我h2文字,但我也想在下面输入相应的文字(以下)。

//div[contains(@class,"topics")]/h2/following-sibling::text()确实为我提供了h2之后的所有文本,但格式为["News", "\n", "Sports", "Entertainment", "\n", "Business"]。现在无法将文本字符串数组重新关联到标题。

我正在使用Scrapy v1.5.1发行XPath。

content.xpath("//div[contains(@class,"topics")]/h2/following-sibling::text()").extract()

奇怪的是,此XPath查询可在Chrome中运行(查看突出显示的黄色文本),而不是通过Scrapy进行。

0 个答案:

没有答案