基本上我有类似的html:
<div>
<p>
<b>1</b> Communication
</p>
<p>
<b>2</b> Errors
</p>
...
</div>
我正在尝试的(用Scrapy)是这样的:
response.xpath("//div//p//text()")
但是,这会返回一个列表,例如
[
"1",
"Communication",
"2",
"Errors"
]
我想要像这样的东西:
[
"1 Communication",
"2 Errors"
]
任何帮助都将不胜感激。我试图找出一种方法来忽略b标签,但是我找不到任何真正有效的方法。我不能将列表索引按2的顺序连接起来的原因是,并不是所有需要解析的html都是这样工作的。我想使用一些可以忽略b标签(如果它们存在的话)的东西,而在任何情况下只获取p中的文本。谢谢!你知道吗
如果您的常规模式是忽略
<b>
标记,那么可以使用w3lib删除这些标记并从结果中构造新的响应。比如:new_response
现在包含原始响应,但删除了<b>
标记。然后可以使用提取逻辑,而无需考虑它们。你知道吗相关问题 更多 >
编程相关推荐