从交互式折线图中提取数据 - svg 路径 - python 2.7
Extracting data from interactive line chart - svg path - python 2.7
我想获取情绪值折线图上描绘的数据:
http://sentdex.com/financial-analysis/?i=TWTR&tf=7d
寻找我经历过的答案
Web scraping data from an interactive chart 跟我的情况好像很像。
还经历了:
这是我最后一次尝试:
import re
svg_string = "M 364.5 53 L 364.5 171.35000000000002 M 364.5 184.5 L 364.5 302.85 M 364.5 184.5 L 364.5 302.85"
print repr(svg_string)
data = [map(float, xy.split(',')) for xy in re.split('[ML]', svg_string)[1:]]
print data
我至少面临 3 个问题:
第一个是 svg_string 的数据代表坐标与实际值,所以我不确定如何访问有趣的数据。
第二个是,即使我使用这段代码,我也会得到
ValueError: invalid literal for float(): 364.5 53
最后,svg_string 的字符串甚至不能正确表示图形(我找不到正确的代码)。
如何提取值?
提前谢谢你。
很难确切地知道您总体上想要什么,但是您得到的 ValueError 是因为您的数据与您引用的其他问题不完全相同。你的数据中有空格,而另一个问题有逗号。
为了减轻 ValueError 的变化:
data = [map(float, xy.split(',')) for xy in re.split('[ML]', svg_string)[1:]]
至:
data = [map(float, xy.split()) for xy in re.split('[ML]', svg_string)[1:]]
希望这能让你进入下一步。
编辑:
好的,所以我再次查看了该页面,数据实际上只是在一个 js 变量中,您可以从响应中获取该变量。变量名称是 'series' 所以你要么需要自己做一些解析来获取数据,要么找到一个库来使用(例如 BeautifulSoup 等)。
我想获取情绪值折线图上描绘的数据: http://sentdex.com/financial-analysis/?i=TWTR&tf=7d
寻找我经历过的答案 Web scraping data from an interactive chart 跟我的情况好像很像。
还经历了:
这是我最后一次尝试:
import re
svg_string = "M 364.5 53 L 364.5 171.35000000000002 M 364.5 184.5 L 364.5 302.85 M 364.5 184.5 L 364.5 302.85"
print repr(svg_string)
data = [map(float, xy.split(',')) for xy in re.split('[ML]', svg_string)[1:]]
print data
我至少面临 3 个问题: 第一个是 svg_string 的数据代表坐标与实际值,所以我不确定如何访问有趣的数据。
第二个是,即使我使用这段代码,我也会得到
ValueError: invalid literal for float(): 364.5 53
最后,svg_string 的字符串甚至不能正确表示图形(我找不到正确的代码)。
如何提取值? 提前谢谢你。
很难确切地知道您总体上想要什么,但是您得到的 ValueError 是因为您的数据与您引用的其他问题不完全相同。你的数据中有空格,而另一个问题有逗号。
为了减轻 ValueError 的变化:
data = [map(float, xy.split(',')) for xy in re.split('[ML]', svg_string)[1:]]
至:
data = [map(float, xy.split()) for xy in re.split('[ML]', svg_string)[1:]]
希望这能让你进入下一步。
编辑:
好的,所以我再次查看了该页面,数据实际上只是在一个 js 变量中,您可以从响应中获取该变量。变量名称是 'series' 所以你要么需要自己做一些解析来获取数据,要么找到一个库来使用(例如 BeautifulSoup 等)。