안녕 텍스트를 [ "Blahblah", "Bluhbluh", "Blihblih"]. xpath가 반복적으로 div 노드에서 텍스트를 찾길 원합니다. 시도한 내용 : //div/p[descendant-or-self::*]/text()
하지만 중첩 된 요소는 추출하지 않습니다.추출 텍스트의 XPath scrapy
건배! 셉
안녕 텍스트를 [ "Blahblah", "Bluhbluh", "Blihblih"]. xpath가 반복적으로 div 노드에서 텍스트를 찾길 원합니다. 시도한 내용 : //div/p[descendant-or-self::*]/text()
하지만 중첩 된 요소는 추출하지 않습니다.추출 텍스트의 XPath scrapy
건배! 셉
p
요소의 XPath의
string()
기능을 사용할 수 있습니다
는 :
>>> import scrapy
>>> selector = scrapy.Selector(text="""<div>
... <p>Blahblah</p>
... <p><a>Bluhbluh</a></p>
... <p><a><span>Bliblih</span></a></p>
... </div>""")
>>> [p.xpath("string()").extract() for p in selector.xpath('//div/p')]
[[u'Blahblah'], [u'Bluhbluh'], [u'Bliblih']]
>>> import operator
>>> map(operator.itemgetter(0), [p.xpath("string()").extract() for p in selector.xpath('//div/p')])
[u'Blahblah', u'Bluhbluh', u'Bliblih']
>>>
>>> selector.xpath('//div/p/descendant-or-self::*/text()').extract()
[u'Blahblah', u'Bluhbluh', u'Bliblih']
당신은 가까웠다! 당신이해야 할 일은 자손이나 자아의 텍스트를 속성으로 간주하지 말아야한다는 것입니다. []는 속성에 대해 "말하는"경우에 사용되며, 경우에 따라 존재하지 않는 p의 속성을 나타냅니다.