我试图使用CoinMarketCap.com ()从pandas.read_html()收集当前的加密货币价格信息。函数的单个(手动)调用工作得很好:打开-高-低-关闭数据自动被拖到一个DataFrame中。所以我做了一个简单的循环,把它称为所有1495 (和计数)密码硬币,但它从来没有超过第10枚硬币,并且经常在第2,第3或第4次通话时停止。我已经包含了一段简短的代码来说明这个问题:
import pandas as pd
coin_list = ['bitcoin', 'ethereum', 'ripple', 'bitcoin-cash', 'cardano',
'stellar', 'neo', 'litecoin', 'eos', 'nem', 'iota', 'dash',
'monero', 'tron', 'icon', 'ethereum-classic', 'qtum',
'bitgem', 'vechain', 'lisk', 'populous', 'raiblocks']
d_coins = {}
for c in coin_list:
print('Getting data for: '+c)
url = 'https://coinmarketcap.com/currencies/'+c+'/historical-data/?start=20130428&end=20180129'
d_coins[c] = pd.read_html(url)[0]代码将每个DataFrame放入字典中,以便稍后将其转换为Panel。即使这个简短的示例从未完成,但它不会抛出一个错误,只要我让它挂起几个小时。如果pandas.read_html()在第一次调用时失败了,或者至少抛出了一个错误,那么就需要继续执行,但是在无限期挂起之前,它似乎工作了几次。有什么想法吗?
python版本: 3.6.0
熊猫版本: 0.22.0
html5lib版本: 1.0.1
发布于 2022-04-11 07:00:45
我知道有一段时间了!但我也有同样的问题--这似乎是解决这个问题的一个答案:
import pandas as pd
import requests
url = 'http(s)://...'
arr = pd.read_html(requests.get(url, timeout=10).content) # timeout is 10
seconds https://stackoverflow.com/questions/48509337
复制相似问题