<div class='productHolder'>
<a href="https://ap.com" class="tea-time-with-ap">
<div class="aptime-8" dataInfo="name">Hammer</div>
<div class="aptime-9" dataInfo="price">$980</div>
</div>
</div>
</a>
</div>
注意:同一页上有20多个productHolder类。
我能够获取价格数据,如何使用父级或前级兄弟姐妹获取href。
我使用以下代码获取价格:
rawPrice = response.xpath("//*[contains(text(),'$')]/text()")[counter].extract()
我花了2个小时尝试使用前面的同级,父级,甚至更改代码以使用其他值,但是,我在其他地方运行问题。
感谢您的帮助,欢呼!
答案 0 :(得分:1)
您是否正在寻找类似的东西
from io import StringIO
from lxml import etree
html = """
<div class='productHolder'>
<a href="https://ap.com" class="tea-time-with-ap">
<div class="aptime-8" dataInfo="name">Hammer</div>
<div class="aptime-9" dataInfo="price">$980</div>
</div>
</div>
</a>
</div>
"""
root = etree.parse(StringIO(html), etree.HTMLParser())
print(root.xpath('//*[contains(text(),"$")]/../@href')[0])
结果:
https://ap.com
当然,您可以轻松地从中构建:
item = root.xpath('//*[contains(text(),"$")]')
print(item[0].text)
print(item[0].xpath('../@href')[0])
结果:
$980
https://ap.com