首页 新闻 搜索 专区 学院

java (HttpClient)如何爬取 图形/曲线/柱状图 (canvas)类的东西?

0
悬赏园豆:10 [已解决问题] 解决于 2015-06-15 09:52

图形/曲线/柱状图 类的展示 的数据(canvas标签内) 如何 抓取?

例如:http://www.p2peye.com/platdata-63.html

使用HttpClient 应该不行吧,因为好像 拿到源码 也没什么用。

网页源码 没有数据,什么都没有。。

 这种 图形 能不能 抓下来并且  还原成 原网站的效果?

我搜到有个 PhantomJS  开源工具 可以实现,但具体 如何做没有找到。。

求高人 指点。。

Inszt的主页 Inszt | 初学一级 | 园豆:151
提问于:2015-05-18 10:49
< >
分享
最佳答案
0

canvas作为一个绘图容器,本身是不带数据的,一般是通过ajax动态请求之后进行绘制。

chrome里按F12打开控制台,点Network标签,第二排点击小漏斗图标,第三排点击XHR,刷新页面,就可以看到当前页面的ajax请求了。

你给的网站里的一个ajax请求是:http://www.p2peye.com/platdata.php?&mod=item&type=seven_day&plat_id=63&ajax=1

返回数据为{"code":"200","message":"\u6570\u636e\u67e5\u8be2\u6210\u529f","data":{"totalcount":1,"platformame":"\u7ea2\u5cad\u521b\u6295","data":[{"biddingRank":{"value":3,"lable":"\u5e73\u5747\u6ee1\u6807"},"amountRank":{"value":1,"lable":"\u6210\u4ea4\u989d"},"rateRank":{"value":32,"lable":"\u5e73\u5747\u5229\u7387"},"loan_numRank":{"value":3,"lable":"\u501f\u6b3e\u4eba\u6570"},"invest_num":{"value":39261,"lable":"\u6295\u8d44\u4eba\u6570"},"total_loan_balanceRank":{"value":1,"lable":"\u7d2f\u8ba1\u8d37\u6b3e\u4f59\u989d"},"amount":{"value":"1628833538.77","lable":"\u6210\u4ea4\u989d"},"loan_periodRank":{"value":7,"lable":"\u5e73\u5747\u501f\u6b3e\u5468\u671f"},"loan_num":{"value":3373,"lable":"\u501f\u6b3e\u4eba\u6570"},"rate":{"value":0.1399,"lable":"\u5e73\u5747\u5229\u7387"},"invest_numRank":{"value":1,"lable":"\u6295\u8d44\u4eba\u6570"},"update_time":{"value":1432522706144,"lable":"\u6700\u540e\u66f4\u65b0\u65f6\u95f4"},"platform_name":{"value":"\u7ea2\u5cad\u521b\u6295","lable":"\u5e73\u53f0\u4e2d\u6587\u540d\u79f0"},"loan_period":{"value":1.15,"lable":"\u5e73\u5747\u501f\u6b3e\u5468\u671f"},"total_loan_balance":{"value":"16873044507.48","lable":"\u7d2f\u8ba1\u8d37\u6b3e\u4f59\u989d"},"bidding":{"value":21.79,"lable":"\u5e73\u5747\u6ee1\u6807\u65f6\u957f"}}]}}

这些是可以直接用HttpClient 获取的~

收获园豆:8
图图图图 | 菜鸟二级 |园豆:220 | 2015-05-25 16:42

确实如此,应该就是 获取到 后台的json数据后自己再绘制 图形,没办法 获取 画好的图形,谢谢。

Inszt | 园豆:151 (初学一级) | 2015-06-15 09:47

@assasszt: 要获取图形直接找到canvas对象,获取context,然后调用exportDataURL方法就行

图图图图 | 园豆:220 (菜鸟二级) | 2015-10-15 20:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册