实际上,您想要的原始数据来自发送到的 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 requests 模块,因为该数据只是纯文本。没有 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)