#python #xpath #scrapy #css-selectors
#python #xpath #scrapy #css-селекторы
Вопрос:
Я использую Scrapy и пытаюсь очистить что-то вроде этого:
<html>
<div class='hello'>
some elements
.
.
.
</div>
<div class='hi there'>
<div>
<h3> title </h3>
<h4> another title </h4>
<p> some text ..... </p>
"some text without any tag"
<div class='article'>
some elements
.
.
</div>
<div class='article'>
some elements
.
.
</div>
<div class='article'>
some elements
.
.
</div>
</div>
</div>
</html>
и если я хочу извлечь текст из всех элементов в div с именем класса «привет» и перед разделами с именем класса «article», есть ли какой-либо возможный способ удаления с помощью селекторов XPath или CSS?
Ответ №1:
Никогда не использовал Scrapy.
Понятия не имею, какие функции у него есть, но,
//div[@class='hi there']/div/(div[@class='article'])[1]/preceding-sibling::*
выбирает элементы перед div с классом «article» и,
//div[@class='hi there']/div/(div[@class='article'])[1]/preceding-sibling::text()
предоставляет вам внутренние тексты перед разделом статьи.