Как получить текст следующего элемента для всех элементов h2, используя xpath? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...