我正在使用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()的行为是否正确?你知道吗
请避免在scrapy中使用“[0].extract()”,否则可能导致列表索引出错。你知道吗
请使用
response.xpath('//div [@class="CCCCC"]/text()').extract_first()
,如果没有第一个元素,它将保存您更多详情请点击这里Scrapy Selector
这种行为是正确的。你知道吗
将
[AAA, BBB, CCC, DDD]
作为列表提供,但您的代码是response.xpath('//div [@class="CCCCC"]/text()')[0].extract()
请注意,使用
[0]
询问的第一个元素。这就是为什么你只得到AAA
。你知道吗如果您删除
[0]
,您将拥有所有四个元素。你知道吗相关问题 更多 >
编程相关推荐