擅长:python、mysql、java
<p>默认情况下,<code>lxml</code>将删除cdata,不幸的是,<code>parsel.Selector</code>scray正在使用的并没有公开该选项。在</p>
<p>因此,您需要手动创建lxml树,然后重新创建选择器:</p>
<pre><code>$ scrapy shell "https://www.nhaccuatui.com/flash/xml?html5=true&key1=59f0ae8a89cea4a0eb2c3b7e40208f26"
from lxml.etree import XMLParser
from parsel import Selector
# lets fix selector
parser = XMLParser(strip_cdata=False)
root = etree.fromstring(response.body, parser=parser, base_url=response.url)
selector = Selector(root=root)
# now finding CDATA values
selector.xpath('//lyric/text()').extract()
[OUT]: ['https://lrc-nct.nixcdn.com/2018/02/07/a/a/e/f/1517979335534.lrc']
</code></pre>