我遇到了python和Scrappy库的问题。当这段代码:
self.item['char_SP4_TIP'] = response.xpath('//p[contains(@class, "spell-tooltip")]/text()').extract()
运行,它会从段落中提取文本,但会将其按<br> tags
拆分。
因此,我不得不像self.item['char_SP4_TIP'][0]
那样访问它,而是访问[0][1][2]
等等,因为有许多<br>
个标签。有没有办法解决它,所以它不会被<br>
标签拆分?感谢。
答案 0 :(得分:3)
您的xpath选择所有文本节点,但<br>
不是文本节点。
<p class='spell-description'> blah <br><br> blah2 </p>
Selects these ^^^^ ^^^^^
您可以join
分割文字。
texts = response.xpath('//p[contains(@class, "spell-tooltip")]/text()').extract()
text = '\n'.join(texts)
如果该类有多个<p>
标记:
text = ['\n'.join(p.xpath('/text()').extract())
for p in response.xpath('//p[contains(@class, "spell-tooltip")]')]