问 题
商品名称:养生堂天然维生素E软胶囊 商品编号:720135 品牌: 养生堂以上是网页源码,现通过xpath匹配所有Li
import lxml.etree as etree
html = html.decode("utf-8")
tree = etree.HTML(html)
property_list_reg = "//ul[@id='parameter2']/li/text()"
property_lst = tree.xpath(property_list_reg)
print len(property_lst)
输出结果:
3
商品名称:养生堂天然维生素E软胶囊
商品编号:720135
品牌:
如果换成:
property_list_reg = "//ul[@id='parameter2']/li//text()" #此处//
输出结果:
4
商品名称:养生堂天然维生素E软胶囊
商品编号:720135
品牌:
养生堂
显然,这不是我想要的结果,我想要的结果是这样
3
商品名称:养生堂天然维生素E软胶囊
商品编号:720135
品牌: 养生堂
求大神指导~ 该如何实现?
解决方案
正确的做法时使用Xpath的 string 函数
import lxml.etree as etree
html = """
商品名称:养生堂天然维生素E软胶囊 商品编号:720135 品牌: 养生堂"""
tree = etree.HTML(html)
property_list_reg = '//ul[@id="parameter2"]//li'
property_lst = tree.xpath(property_list_reg)
for e in property_lst:
print(e.xpath('string(.)'))
print(len(property_lst))
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起