【发布时间】:2016-01-11 11:18:08
【问题描述】:
我正在尝试使用 Python 请求和 lxml 从亚马逊上的商品中提取“卖家排名”。所以:
<li id="SalesRank">
<b>Amazon Bestsellers Rank:</b>
957,875 in Books (<a href="http://www.amazon.co.uk/gp/bestsellers/books/ref=pd_dp_ts_b_1">See Top 100 in Books</a>)
在这个例子中,957875 是我要提取的数字。
(请注意,实际的 HTML 在“Amazon Bestsellers Rank:”和“957875”之间有大约 100 个空白行。不确定这是否会影响我的结果。)
我当前的 Python 代码是这样设置的:
import re
import requests
from lxml import html
page = requests.get('http://www.amazon.co.uk/Lakeland-Expanding-Together-Compartments-Organiser/dp/B00A7Q77GM/ref=sr_1_1?s=kitchen&ie=UTF8&qid=1452504370&sr=1-1-spons&psc=1')
tree = html.fromstring(page.content)
salesrank = tree.xpath('//li[@id="SalesRank"]/text()')
print 'Sales Rank:', salesrank
打印输出是
Sales Rank: []
我期待收到完整的列表数据,包括我稍后会解析的所有空白行。 我是否正确假设 /text() 在这种情况下不是正确的使用,我需要输入其他内容? 非常感谢任何帮助。
【问题讨论】:
标签: python html python-requests lxml