【发布时间】:2015-10-29 02:26:01
【问题描述】:
例如,考虑以下 HTML:
<div class="class1">
<div id="element1">
text1
</div>
<div id="element2">
text2
</div>
<div id="element3">
text3
</div>
</div>
我想要实现的是解析不同的元素,哪些属性是已知的。
我现在的做法:
index = len(tree.xpath('//div[@class="class1"]')
for i in range(0, index):
print tree.xpath('//div[@class="class1"][i]/text()')
但是当涉及到更长的 xpath 时,它会变得有点混乱。 有没有其他方法可以做到这一点?
编辑-
例如,
first_elem = tree.xpath('//div[@class="class1"]')[0]
是否可以这样做:
first_elem.xpath() 在<div id="element1"> 中搜索?
编辑-
在 lxml 中发现了奇怪的方法:
for i in tree.xpath('//div[@class="class1"]'):
str1 = html.tostring(i)
tree = html.fromstring(str1)
< do things here >
【问题讨论】:
-
预期输出是什么?
text1、text2和text3? -
@falsetru 是的。我正在尝试解析这些文本。
标签: python web-scraping lxml