首先是网址:
http://www.amazon.in/gp/product/B00EYCBFDQ/ref=s9_pop_gw_g147_i3?pf_rd_m=A1VBAL9TL5WCBF&pf_rd_s=center-3&pf_rd_r=1YP3T548XBFHJ1RA3EH8&pf_rd_t=101&pf_rd_p=402518447&pf_rd_i=1320006031
以上是www.amazon.in上某些产品页面的链接。我想获得Rs.4,094
的实际价格。下面是一个试图打印价格的python代码,我使用//span[@id="actualPriceValue"]/text()
来获取价格,但它返回一个空列表。任何人都建议如何获得价格?
from lxml import html
import requests
page = requests.get('http://www.amazon.in/gp/product/B00EYCBFDQ/ref=s9_pop_gw_g147_i3?pf_rd_m=A1VBAL9TL5WCBF&pf_rd_s=center-3&pf_rd_r=1YP3T548XBFHJ1RA3EH8&pf_rd_t=101&pf_rd_p=402518447&pf_rd_i=1320006031')
tree = html.fromstring(page.text)
price = tree.xpath('//span[@id="actualPriceValue"]/text()')
print price
答案 0 :(得分:1)
我认为问题是身份span
的{{1}}没有直接文字。你会想做这样的事情(我把它拉出脑袋,所以你可能不得不改变它):
编辑:修正。下面的解释仍然准确。
actualPriceValue
您会注意到HTML如下所示:
//*[@id='actualPriceValue']/b/span/text()
你会注意到它应该是:
<span id="actualPriceValue">
<b class="priceLarge">
<span style="text-decoration: inherit; white-space: nowrap;">
<span class="currencyINR"> </span>
<span class="currencyINRFallback" style="display:none">Rs. </span>
4,112.00
</span>
</b>
</span>
答案 1 :(得分:1)
使用以下XPath:
price = tree.xpath("//*[@id='actualPriceValue']/b/span/text()")[0]
以下代码检出:
from lxml import html
import requests
page = requests.get('http://www.amazon.in/gp/product/B00EYCBFDQ/ref=s9_pop_gw_g147_i3?pf_rd_m=A1VBAL9TL5WCBF&pf_rd_s=center-3&pf_rd_r=1YP3T548XBFHJ1RA3EH8&pf_rd_t=101&pf_rd_p=402518447&pf_rd_i=1320006031')
tree = html.fromstring(page.text)
price = tree.xpath("//*[@id='actualPriceValue']/b/span/text()")[0]
print price
结果:
4,094.00
[Finished in 3.0s]
如果有帮助,请告诉我们。