使用Python从网站上刮取图形数据

时间:2015-05-28 04:55:49

标签: python python-2.7 scrape

是否可以从网站捕获图表数据? 例如,网站here有许多情节。 是否可以使用Python代码捕获这些数据?

1 个答案:

答案 0 :(得分:8)

查看您提供的链接的页面源,可以通过链接以JSON格式直接获取图表数据。 http://www.fbatoolkit.com/chart_data/1414978499.87

所以你的刮刀可能想做这样的事情:

my_element = browser.divs(:class => "column")[-4]
target = browser.divs(:class => "column")[-3]
my_element.fire_event("onmousedown")
driver = browser.driver
driver.action.click_and_hold(my_element.wd).perform
driver.action.move_to(target.wd).perform
target.fire_event("onmouseup”)

(编辑以解释我找到链接的过程)当我遇到这样的问题时,我要做的第一件事就是查看页面源代码(Chrome浏览器中的ctrl-u)。我四处寻找绘制图表的相关内容,直到找到以下javascript

import requests
import re

r = requests.get('http://www.fbatoolkit.com')
data_link = b'http://www.fbatoolkit.com/' + re.search(b'chart_data/[^"]*', r.content).group()
data_string = requests.get(data_link).content.decode('utf-8')
chart_data = eval(data_string.replace('window.chart_data =', '').replace(';\n',''))

然后我在源中搜索了他们定义变量 function make_containers(i){ var chart = chart_data[i]; 的位置。我找不到这个,但我确实找到了这条线

chart_data

点击此链接后,(您可以在Chrome的浏览源页面中点击它)我可以看到这是一个定义此变量的一行javascript。 (请注意,在我的示例代码的最后一行中,我必须对此文件进行一些更改,以便在Python中进行评估)。