客户在网页上输入(或选择)股票代码,
下方显示其当前价格等信息,且定时显示最新价格及其变化幅度。
股票当前信息可以从其他证劵网抓取。
客户可能选择查看多条股票代码,如选择了50条股票信息(它们在页面上显示并即时变化),难道要用多线程吗?在网页中如何实现?没有具体思路?
要求实现的效果如图(来自股票网):
[img]http://dl.iteye.com/upload/attachment/383297/76c0409e-455e-35ae-a25e-fb5dd9bccef5.png[/img]
恳请高手指导?提供实现思路(比如前台和后台分别放置什么内容)
一、抓取股票信息
1、直接抓取网页内容
URL fullUrl = new URL("你要抓取的网页的URL");
URLConnection con = fullUrl.openConnection();
con.connect();
InputStream is = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String resultStr = br.readLine();
2、通过股票网站提供的接口获取数据
二、解析网页内容
1、Java开源Html解析类库来辅助解析网页数据
如使用:HTML Parser
更多库:[url]http://www.open-open.com/30.htm[/url]
三、页面查询股票数据
使用Ajax实时查询并显示数据
[color=red]页面刷新的信[/color]息和[color=red]真实股票的刷新信息[/color]是两回事
页面这部分,要有ajax做轮询,从服务器缓存里获取所需股票信息(不管是不是最新的)
服务器这部分,就把用户指定的股票信息,定时的更新的到缓存里面
至于用户指定的股票,用session来控制
个人建议:
1、后台写一个抓取程序,定时从证券网抓取数据并解析入库,可以将所有股票信息入库。
当然,你只是显示当前最新信息,那么每个股票代码只需要对应一条记录,保存最新的价格与幅度等信息
2、页面定时使用Ajax查询数据库并显示
优点:
由于你要实时查询,如果是抓取其他网站的数据,由于网络延迟、或者查询返回的记录数比较多的时候,页面会等很久才出来,这样肯定是不行的