Scrapy提取多个标签的text


对于要提取嵌套标签所有内容的情况, 使用string//text(), 注意两者区别

>>> from scrapy import Selector
>>> 
>>> doc = "<p id='test'>hello<b>world!</b></p>"
>>> 
>>> sel = Selector(text=doc, type='html')
>>> 
>>> sel.xpath("/p[@id='test']/text()").extract()
[]

使用text()

>>>#使用两个反斜杠
>>> sel.xpath("//p[@id='test']/text()").extract()
[u'hello']
>>> #这样提取出来是一个列表, 
>>> sel.xpath("//p[@id='test']//text()").extract()
[u'hello', u'world!']
>>> 

使用string

>>> sel.xpath("//p[@id='test']").xpath('string(.)').extract()
[u'helloworld!']
>>> 
>>> sel.xpath("string(//p[@id='test'])").extract()
[u'helloworld!']
>>> 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM