Scrapy:如何获得另一个标签

问题描述:

内标签的文本我有HTML段落是这样的:Scrapy:如何获得另一个标签

<p>Hello <strong>I'm G </strong></p>

我试图让P内的所有文本。即使是强标签的部分。 我尝试下面的代码,但我只得到“你好”:

for text in response.css("div.entry-content"): 
     yield { 
      "parag": text.css("p::text").extract(), 
     } 

我也试过第一的孩子,就像在CSS中,但这次没有返回:

"parag": text.css("p:strong::text").extract() 

编辑:不是强,它可能是另一个标签。因此我们的目标是拿到第一个孩子文本

+0

的CSS标签不会在这里帮助;) –

这里有一个工作示例:

>>> from scrapy.http import HtmlResponse 
>>> response = HtmlResponse(url="Test HTML String", body="<p>Hello <strong>I'm G </strong> <b>I write code</b></p>") 

# First child 
>>> ' '.join(t.strip() for i, t in enumerate(response.css('p ::text').extract()) if i< 2).strip() 
u"Hello I'm G" 

# All child 
>>> ' '.join(t.strip() for t in response.css('p ::text').extract()).strip() 
u"Hello I'm G I write code"