我试图用scrapy从HTML中提取一个ref.id:
<div class="col" itemprop="description">
<p>text Ref. <span>220.20.34.20.53.001</span></p>
<p>more text</p>
</div>
span和p标记并不总是存在。在
使用xpath选择器:
^{pr2}$在这种情况下,只返回一个空字符串,因为标记中有HTML。在
现在尝试使用CSS选择器提取文本以便使用remove-tu标记:
>>> ''.join([remove_tags(w).strip()for w in response.css('div[itemprop="description"]::text').extract()])
这将返回一个空结果,因为我不知何故无法获取该项。在
无论div中是否有html<p>
标记,我如何提取ref峎id。爬网的某些项没有<p>
标记,也没有<span>
,这是我第一次尝试使用xpath的地方。在
您不需要使用
remove_tags
,因为您可以通过选择器直接获得text
:这将从带有
^{pr2}$itemprop="description"
的div
标记中获取所有内部文本,然后可以使用regex提取信息:尝试从上一个表达式中删除
::text
:但是如果只需要从html中提取
220.20.34.20.53.001
,为什么不使用response.css('div[itemprop=description] p span::text').extract()
?在甚至
response.css('div[itemprop=description]').re(r'([\.\d]+)')
。在相关问题 更多 >
编程相关推荐