抓取网页数据违法吗(动态获取SIS系统传过来的小指标参数是怎样的? )

优采云 发布时间: 2022-04-12 05:05

  抓取网页数据违法吗(动态获取SIS系统传过来的小指标参数是怎样的?

)

  最近在开发过程中接到一个小任务,就是PC端需要动态获取SIS系统传过来的小指标参数,以达到不定时刷新的效果。说到不定时刷新,大家第一时间就会想到ajax异步刷新,因为真的没有比这更简单的了。

  SIS系统本身有很多指标。数据抓取需要时时同步最新的数据库数据,并且需要动态获取指标名称显示,并根据单元的分组动态创建显示表(即有几个单元创建几个显示器。表)。

  需求明确,根据前端设计的html页面,先转换成jsp页面。然后创建访问 servlet。jsp页面提取动态表的内容并拼接到servlet中,而jsp页面只是一个简单的ajax请求,代码如下:

  function page_click(){

$.ajax({

type : "post",

url : "/CdGetDtSisdatasServlet/?eventtype=sisDatas",

dataType:"html",

async: false,

data:{},

success : function(data,textStatus){ 

//alert("成功");

$("#menu").html(data);

},

error:function(data){

alert("出内部错:"+data);

}

});

}

  成功后直接返回html代码,显示转换后的数据。为了定时自动刷新,js写了一个定时函数:前端jsp页面基本完成。

  查看 servlet 实现。

  servlet 中的实现也比较简单。首先根据需求将数据库中的字段动态组装成可以接收sis系统的合法字段,然后动态获取数据。然后根据单元号动态插入数据,分别存储在一个hashmap集合中。然后动态封装创建表的方法,部分代码块如下:

  {.......

htmldata.append("<p>"+v2+"\r\n");

htmldata.append("

  "+v3+"\r\n");

htmldata.append("

  "+v4+"\r\n");

htmldata.append("

  "+v5+"\r\n");

htmldata.append("

  "+v6+"\r\n");

htmldata.append(" \r\n");

}

htmldata.append("\r\n");

return  htmldata.toString();

...........</p>

  这里简单的通过一个StrinBuffer组装html代码,这样就可以用最简单的方式实现动态创建表,最后在main方法中调用动态创建表的方法,最后

  String htmltoString=htmldata.toString();

response.getWriter().write(htmltoString);

response.getWriter().flush();

return htmltoString;

  这个小功能基本完成,最后附上一张效果图。

  本案例是一个简单的异步刷新案例,希望对初学者有所帮助。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线