xpath解析语句是这样的:
item['title'] = response.xpath('//span[@class="title"]/text()').extract_first()
item['content'] = response.xpath('//div[@class="content"]').extract_first()
解析结果是这样的:
{
'title': '\t你好',
'content': '<div class="content">哎哟不错哟<br>\r\n哈哈哈哈</div>'
}
问题:
1、解析结果的title
字段中有个\t
,网页中显示为空格,怎么去掉它,好像是用re_first()
,但不知括号里面正则表达式应该怎么写。
2、解析结果的content
字段是一段有格式的文本,需要保留格式,但不需要包含节点<div class="content"></div>
自身,只需要它的子节点的所有内容,xpath语句应该怎么写?
请大神帮写一下,谢谢。
更新:
如果content
的html是这样的:
<div class="content">
<p>能够在过去这么多年的时间里研究并学习宇宙学,对我来说意义非凡。</p>
<p>我很开心也很荣幸可以为人们对于黑洞和宇宙的形成的认识做出贡献。</p>
</div>
xpath解析语句:
item['content'] = response.xpath('//div[@class="content"]').extract_first()
解析结果:
{
'content': '<div class="content"><p>能够在过去这么多年的时间里研究并学习宇宙学,对我来说意义非凡。</p><p>我很开心也很荣幸可以为人们对于黑洞和宇宙的形成的认识做出贡献。</p></div>'
}
问题:
不需要外面的<div class="content"></div>
,里面的p标签保留,需要怎么写?
对于你第二次提出的问题:
不过,俗话说得好:
所以,我想你需要的是重新学习理解一下XPath,链接拿好:
菜鸟教程XPath
我自己的XPath笔记
=============================更新的分割线===============================
content:
可以得到:
然后可以手动拼接:
"".join(result)
最后可以得到带格式的文本:
title: