是否可以从网站捕获图表数据? 例如,网站here有许多情节。 是否可以使用Python代码捕获这些数据?
答案 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中进行评估)。