Я ходил кругами на этом. Немного расстраивает, поскольку решение, вероятно, уже близко.
В любом случае, я нашел URL, который возвращает некоторые данные в формате CSV. Однако сам URL не содержит имя файла CSV. В веб-браузере я легко могу go перейти по ссылке, и их спрашивают, хочу ли я открыть или сохранить файл. Итак, в конце концов я знаю, что я получаю CSV-файл с именем. Я просто не уверен, как выполнить задачу в python, поскольку, кажется, передается некоторый промежуточный тип данных (в байтах)
Я пробовал следующее безрезультатно:
import urllib
import io
import pandas as pd
link = r'http://www.cboe.com/products/vix-index-volatility/vix-options-and-futures/vix-index/vix-historical-data/'
f = urllib.request.urlopen(link)
myfile = f.read()
buf = io.BytesIO(myfile) # originally tried io.StringIO(myfile) but then realized myfile is in bytes
df = pd.read_csv(buf)
Есть предложения?
В df должны содержаться данные, которые выглядят примерно так:
1/5 / 2004,18.45,18.49,17.44,17.49 1/6 / 2004,17.66, 17.67,16.19,16.73 1/7/2004 / 16,72,16,75,15,5,15,5 1/8 / 2004,15.42,15.68,15.32,15.61 1/9 / 2004,16.15,16.88,15.57,16.75 1/12/2004, 17.32,17.46,16.79,16.82
Последняя строка сообщения об ошибке:
ParserError: Ошибка токенизации данных. C ошибка: ожидается 2 поля в строке 24, пила 4