【发布时间】:2016-05-04 10:26:07
【问题描述】:
我正在尝试获取当前选定节点的前同级,但不确定我做错了什么。
这是 html 快照:
source = """
<div class="zg_itemImmersion">
<div class="zg_rankDiv"><span class="zg_rankNumber">10.</span></div>
<div class="zg_itemWrapper" style="height:285px">
<div class="zg_image">
<div class="zg_itemImageImmersion"><a href="
http://www.amazon.com/Oral-B-Action-Replacement-Electric-Toothbrush/dp/B000AUIFCA/ref=zg_mw_8517148011_10"><img src="http://ecx.images-amazon.com/images/I/41RHKIQXnhL._SL160_SL150_.jpg" alt="Oral-B Floss Action Replacement Elect..." title="Oral-B Floss Action Replacement Elect..."/></a></div>
</div>
</div>
"""
如果href包含ASIN,我想得到的是rankNumber:B000AUIFCA,
from lxml import html
source1 = html.fromstring(source)
links = source1.xpath('//div[@class="zg_itemImmersion"]//div[@class="zg_itemImageImmersion"]/a[contains(@href,"B000AUIFCA")]/@href')
以上内容为我提供了包含所需 ASIN 的正确链接:B000AUIFCA
['\n\n\n\n\n\n\nhttp://www.amazon.com/Oral-B-Action-Replacement-Electric-Toothbrush/dp/B000AUIFCA/ref=zg_mw_8517148011_10/191-4138574-0525467']
现在我想从前面的兄弟姐妹中获得“10”级 - [span class="zg_rankNumber"] 如果 ASIN 在 ('//span[@class="zg_rankNumber"]//a//@href') == B000AUIFCA
为此我正在使用:link2 = source1.xpath('//div[@class="zg_itemImmersion"]//div[@class="zg_itemImageImmersion"]/a[contains(@href,"B000AUIFCA")]/preceding-sibling::*/text()')
但它返回 Null
【问题讨论】: