scrapy过滤html标签,如何在缺少html标记时使用scrapy提取标签值列表

编辑:抱歉,我使用lxml,但它对Scrapy自己的选择器也一样。

对于您提供的特定HTML,这将起作用:

>>> s = """ label1

... value1

... label2

... value2

... """

>>>

>>> import lxml.html

>>> lxml.html.fromstring(s)

>>> soup = lxml.html.fromstring(s)

>>> soup.xpath("//text()")

[' label1 ', '\nvalue1 ', ' label2 ', '\nvalue2 ']

>>> res = soup.xpath("//text()")

>>> for i in xrange(0, len(res), 2):

... print res[i:i+2]

...

[' label1 ', '\nvalue1 ']

[' label2 ', '\nvalue2 ']

>>>

编辑2:

>>> bs = etree.xpath("//text()[preceding-sibling::b/text()]")

>>> for b in bs:

... if b.getparent().tag == "b":

... print [b.getparent().text, b]

...

[' label1 ', '\nvalue1 ']

[' label2 ', '\nvalue2 ']

[' label3 ', '\nvalue3 ']

另外,对于它的价值,如果你循环选择的元素,你想在for循环中的xpath中执行“./foo”,而不是“/ foo”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值