- 需求:想要获取列表["null","00"],但是使用text()只能得到["00"]
- 解决 如果是Xpath2.0的话,可以使用
contents4=selector.xpath('//li[@class = "tag_1"]//td/split(.)')但是相信大多数人使用lxml,貌似仅仅支持Xpath1.0的亚子,因此只能先用//td获取td标签列表,再针对标签列表中每个标签调用.text
html = '''
<li class="tag_1">
<td></td>
<td>00</td>
</li>
'''
selector = etree.HTML(html )
contents4=selector.xpath('//li[@class = "tag_1"]//td')
x=[]
for c in contents4:
x.append(c.text)
print(x)
吐槽:在国内论坛上没有搜到相关的解决方式,只能感谢万能的StackOverflow

博主遇到在使用lxml和XPath获取特定列表元素时,只能得到非空字符串的问题。在Xpath2.0中,可通过split(.)解决,但在lxml(只支持XPath1.0)中需遍历获取的标签列表,逐个读取.text属性。
535

被折叠的 条评论
为什么被折叠?



