【发布时间】:2017-09-21 08:57:20
【问题描述】:
我正在关注关于 Bokeh 的 Udemy 教程,但我遇到了一个错误,我不知道如何解决,也没有收到导师的回复。最初,我认为我的代码有问题,所以花了大约一周的时间试图弄清楚,最后屈服并复制了导师的代码,却发现错误仍然存在。
代码的目的是抓取和绘制实时数据。代码如下:
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, DatetimeTickFormatter
from bokeh.plotting import figure
from random import randrange
import requests
from bs4 import BeautifulSoup
# Create the figure
f = figure()
# Create webscraping function
def extract_value():
r = requests.get("https://bitcoincharts.com/markets/okcoinUSD.html", headers = {'User-Agent' : 'Chrome'})
c = r.content
soup = BeautifulSoup(c, "html.parser")
value_raw = soup.find_all("p")
value_net = float(value_raw[0].span.text)
return value_net
# Create ColumnDataSource
source = ColumnDataSource(dict(x = [], y = []))
# Create glyphs
f.circle(x = 'x', y = 'y', color = 'olive', line_color = 'brown', source = source)
f.line(x = 'x', y = 'y', source = source)
# Create periodic funtion
def update():
new_data = dict(x = [source.data['x'][-1]+1], y = [extract_value])
source.stream(new_data, rollover = 200)
print(source.data) # Displayed in the commmand line!
# Add a figure to curdoc and configure callback
curdoc().add_root(f)
curdoc().add_periodic_callback(update, 2000)
哪个是扔的:
周期性回调抛出的错误:IndexError('list index out of 范围',)
对这里发生的事情有任何想法吗?
【问题讨论】:
-
我遵循相同的教程,它使用的是旧版本的散景。在此期间,语法可能已更改。从这个角度来看,散景非常“动态”。我看到最新的 BeautifulSoup 和 Bokeh 由于 BeSoup (_html5lib.py) 中的错误而无法正常工作。你现在用的是哪个版本?您是否尝试安装讲师使用的那个?哪一行出现错误?
标签: python python-3.x web-scraping bokeh