【发布时间】:2017-08-31 02:41:24
【问题描述】:
我正在尝试从 nanopool 中抓取数据以在我的 python 脚本中使用,但每当我尝试抓取数据时,我只会得到类,而不是我正在寻找的文本。有问题的具体网页的链接可以找到here
非常简化的页面源码
我要获取的第一条数据:
<table class="table table-hover table-bordered" style="margin-bottom: 5px;" data-bind="with: calc">
<tbody>
<tr data-bind="with: hour"><td>Hour</td>
<td class="text-right" data-bind="text: coins">0.00015</td>
<td class="text-right" data-bind="text: bitcoins">0.000012</td>
<td class="text-right" data-bind="text: dollars">0.058</td><td class="text-right" data-bind="text: euros">0.048</td>
<td class="text-right" data-bind="text: yuan">0.372</td><td class="text-right" data-bind="text: rubles">3.244</td>
</tr>
</tbody>
我要获取的第二条数据:<div class="panel-body" data-bind="text: balance() + ' ETH'">0.02743061 ETH</div>
我一直在尝试使用的代码:
输入
r = requests.get('https://eth.nanopool.org/account/0x2a156c6dd3bdf2a0c5b284b45b2396c053c2a63d')
soup = BeautifulSoup(r.text, 'html.parser')
balance = soup.findAll('div', attrs = {'class': 'panel-body'})[3]
calc_box = soup.findAll('table')[3].findAll('tr')[2].find('td', {'class', 'text-right'})
print(calc_box)
print(balance)
输出
<td class="text-right" data-bind="text: coins"></td>
<div class="panel-body" data-bind="text: balance() + ' ETH'"></div>
【问题讨论】:
-
打印
r.text,你会看到table[3]没有文字。它可能会动态加载这些值,您将在 SO 上看到解决该问题的其他答案。
标签: python html css python-3.x beautifulsoup