在抓取一个站点时,我有一个如下的HTML:
<div class="classA classB classC">
<div class="classD classE">
<h1 class="classF classD">Text I don't want</h1>
<ul>....</ul> <!-- containing more text in nested children, don't want -->
</div>
Text I want to grab.
<br>
More text I want to grab
</div>
在这里,我怎样才能只选择我想要抓取的文本,例如["Text I want to grab", "More text I want to grab"]
,并防止选择Text I don't want
。我尝试使用CSS选择器选择,如下所示:
text = response.css('.classA:not(.classD) *::text').getall()
有没有人知道,在这种情况下该怎么做,我不熟悉xpath,但如果有解决方案,请提出建议?
1条答案
按热度按时间gjmwrych1#
你即将达到你的目标。你想阻止
<h1 class="classF classD">Text I don't want</h1>
使用:不,这是正确的,但你必须选择整个html部分,从那里有你想要的输出意味着你必须选择<div class="classA classB classC">
在第一次,然后你必须阻止任何你想要的。所以css表达式应该像这样:或
由碎贝壳证实: