lxml.html解析HTML:寻找具有特定同级的所有元素
问题描述:
我有一个HTML网页,其中我已经用读入树:tree = html.fromstring(page.content)
lxml.html解析HTML:寻找具有特定同级的所有元素
我已经成功地使用选择一个链接列表:
tree.xpath('//span[@class="txt"]/span[@class="pl"]/a[@class="hrdlnk"]/text()')
我也成功入选使用价格清单:
tree.xpath('//span[@class="txt"]/span[@class="l2"]/span[@class="price"]/text()')
注意两个hrdlnk和价格都grandc hildren的span[@class="txt"]
我的问题是,我正在创建一个笛卡尔的链接X价格图。我需要它们的相关性,所以我需要确保我正在创建一组正确匹配的字典。这很简单,除了有时没有价格,这意味着我需要忽略链接。
如何选择仅有价格同级的链接并选择价格?如何将这些信息输入到字典中并添加到数组中,以确保正确地匹配一组链接和价格?
答
第一个问题的答案。这个xpath应该只选择那些有价格孙辈的孙辈span[@class="txt"]
的链接:
tree.xpath('//span[@class="txt" and ./span[@class="l2"]/span[@class="price"]]/span[@class="pl"]/a[@class="hrdlnk"]/text()')