python scrapy xpath text()提取文本失败,原因是<b/>

2024-09-25 18:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scrapyshell并尝试获取以下元素的文本部分

<div class="CCCCC">AAA<br />BBB<br />CCC<br />DDD</div>

通过使用

response.xpath('//div [@class="CCCCC"]')[0].extract()

我有一个完整的元素包括标签

<div class="CCCCC">AAA<br>BBB<br>CCC<br>DDD</div>

但是使用

response.xpath('//div [@class="CCCCC"]/text()')[0].extract()

我只得到了'AAA',而不是我所期望的'AAA<br>BBB<br>CCC<br>DDD'。你知道吗

text()的行为是否正确?你知道吗


Tags: text文本brdiv元素responseextractxpath
2条回答

请避免在scrapy中使用“[0].extract()”,否则可能导致列表索引出错。你知道吗

请使用response.xpath('//div [@class="CCCCC"]/text()').extract_first(),如果没有第一个元素,它将保存您

更多详情请点击这里Scrapy Selector

这种行为是正确的。你知道吗

response.xpath('//div [@class="CCCCC"]/text()')

[AAA, BBB, CCC, DDD]作为列表提供,但您的代码是

response.xpath('//div [@class="CCCCC"]/text()')[0].extract()

请注意,使用[0]询问的第一个元素。这就是为什么你只得到AAA。你知道吗

如果您删除[0],您将拥有所有四个元素。你知道吗

相关问题 更多 >