В документации и статьях SO есть только ссылки на то, как исключить CSS-классы с использованием этой номенклатуры:
response.css("div[id='content']:not([class*='infobox'])")
Однако я хочу исключить узел или даже несколько узлов, таких как элементы <span>
и <div>
, которые находятся внутри элемента <li>
.
Позвольте мне привести вам пример. Допустим, я очищаю этот HTML:
<li class="classA">
<div class="classB">
..
</div>
<span class="classC">Whatever</span>
This is the string I want to scrape
</li>
, и меня интересует только очистка текста "Это строка, которую я хочу очистить", поэтому я хочу пропустить оба узла <div>
и <span>
. Я попытался использовать следующее, внутри скрапа, безрезультатно:
response.css(".classA:not(span|div)::text").extract()
, но я все еще получаю исключенные узлы.