【发布时间】:2016-05-16 00:08:05
【问题描述】:
我有这段 HTML(数字不同):
<span class="ng-binding">
<b>Total:</b>
68.71€ (459 items)
</span>
我想从中提取68.71€ (459 items)
到目前为止,我尝试使用这段代码进行此操作,只是将 xpath 从 Google Chrome 复制到上面显示的 span 类:
import urllib.request
from lxml import html
import os
ids = ["ftpstorage1-730",
"ftpstorage2-730",
"ftpstorage3-730"]
for id in ids:
url = 'http://steam.tools/itemvalue/#/'+id
with urllib.request.urlopen(url) as response:
site = response.read()
tree = html.fromstring(site)
data = tree.xpath('//*[@id="container"]/div[5]/span[1]/text()')
print(data)
理论上这应该有效,但它不会,我得到的只是data 是:
[" {{(items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'price':'count':
e}}\n\t\t\t\t({{items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'count
[" {{(items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'price':'count':
e}}\n\t\t\t\t({{items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'count
[" {{(items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'price':'count':
e}}\n\t\t\t\t({{items | filter:dupesFilter | filter:typeFilter | filter:filterText | sumByKey:'count
知道我做错了什么吗?
这与生成的数字不是静态的有关吗?
如果是这样,我怎样才能提取数字?
【问题讨论】:
-
数据不在源中,是动态生成的
-
@PadraicCunningham 奖励积分如果您通过
requests获得总数。 :) -
@alecxe,你打败了我!
-
@PadraicCunningham 抱歉,一开始我想到了硒,但后来我意识到我可以在这里打败你:)
-
@PadraicCunningham 好的,谢谢,但我需要喝点烈性酒才能接近那个人。
标签: python python-3.x xpath lxml