从比特币图表中抓取数据

Scraping Data from bitcoincharts

背景:Python 2.7 是我的第一门编码语言,没有其他 code/tech 经验。我认为自己是 python 的初学者。

问题:我正在尝试以固定的时间间隔自动从比特币图表中抓取原始数据(并将它们存储在 csv 中)。考虑到我必须经历的学习曲线,scrapy 或 BeautifulSoup 在这里会是更好的用例吗?

URL(我想抓取"Load raw data"下的数据table): http://bitcoincharts.com/charts/itbitUSD#rg60zig12-hourzczsg2015-02-03zeg2015-04-04ztgSzm1g10zm2g25zv

实际上,您想要的原始数据来自 ajax 发送至

的请求

http://bitcoincharts.com/charts/chart.json?m=itbitUSD&SubmitButton=Draw&r=60&i=12-hour&c=1&s=2015-02-03&e=2015-04-04&Prev=&Next=&t=S&b=&a1=&m1=10&a2=&m2=25&x=0&i1=&i2=&i3=&i4=&v=1&cv=0&ps=0&l=0&p=0&

数据如下:
[[1422835200, 226.160000000000, 232.330000000000, 223.450000000000, 225.834600000000, 288.974600000000, 65610.792992280000, 227.046920360060], [1422878400, 228.790000000000, 243.900000000000, 223.480000000000, 237.687800000000, 1119.126000000000, 255111.532814370000, 227.956041423727], [1422921600, 237.490000000000, 246.760000000000, 236.320000000000, 242.580000000000, 414.730800000000, 99174.059876450000, 239.128755029649]...]
其中主列表中的每个列表代表一行。

要从此 url 中提取数据,您只需要 python 请求模块,因为该数据只是纯文本。没有 html 标记来分隔它们。 Scrapy 和 BeautifulSoup 处理 html。为了处理文本,我们需要 python 脚本。 代码会是这样

import requests
import json

url = 'http://bitcoincharts.com/charts/chart.json?m=itbitUSD&SubmitButton=Draw&r=60&i=12-hour&c=1&s=2015-02-03&e=2015-04-04&Prev=&Next=&t=S&b=&a1=&m1=10&a2=&m2=25&x=0&i1=&i2=&i3=&i4=&v=1&cv=0&ps=0&l=0&p=0&'
data = json.loads(requests.get(url).content)