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

TJ1*_*TJ1 0 python scrape python-2.7

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

max*_*moo 8

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

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

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',''))
Run Code Online (Sandbox Code Playgroud)

(编辑以解释我找到链接的过程)当我接近这样的问题时,我要做的第一件事就是查看页面源(在Chrome for Windows中使用ctrl-u).我四处寻找绘制图表的相关内容,直到找到以下javascript

  function make_containers(i){
        var chart = chart_data[i];
Run Code Online (Sandbox Code Playgroud)

然后我通过源搜索了他们定义变量的位置chart_data.我找不到这个,但我确实找到了这条线

<script type="text/javascript" src="/chart_data/1414978499.87"></script>
Run Code Online (Sandbox Code Playgroud)

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