标签:
最近,1元购物比较火,这种众筹形式的购物,购买者出很小的费用,就能获得一个得到喜欢的物品。有人说这是个骗局,也有人趋之若鹜的每天在上面购物,这里不做评论。网易也做这个模式,名字是1元云购,1元夺宝。
网易云购 www.1yyg.com的网站上顶部有个累计参与人次的统计,对这个比较好奇,想着统计一个时间段参与人次的变化。

打开网站,加载页面的过程中,打开调试,查看network,注意不断重复的请求:

上面标注的这个请求不断的发送,网页上实时变化也就累计参与人次的统计,这样就确定了请求。
打开这个请求的网址后:

这明显是jsonp嘛,那就尝试着网页上获取下,每1s钟显示一次:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta charset="utf-8">
<style>
li{list-style-type:none;}
</style>
<title>jsonp测试例子</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
//定义getdata()函数
function getdata(){
$.ajax({
type: "get",
async: false,
url: "http://api.1yyg.com/JPData?action=totalBuyCount",
dataType: "jsonp",
jsonp: "fun",
jsonpCallback:"jsonp",
success: function(data){
var html = ‘‘;
html+=‘<li>‘+data[‘count‘]+‘</li>‘;
$("#remote").append(html);
},
error: function(){
alert(‘fail‘);
}
});
}
setInterval(getdata,1000);//每隔一秒执行getdata函数。
});
</script>
</head>
<body>
远程数据如下:<br/>
<div id="remote"></div>
</body>
</html>
效果:

可以发现其中的规律,没5分钟后台更新一次。
当然,可以用Java爬网页的方式这个数据。
package worktest;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class TaskDemo1 {
public static void main(String [] args){
TimerTask task = new TimerTask() {
@Override
public void run() {
fn();
System.out.println("Hello !!!");
}
};
long delay = 0;
long Period = 60 * 1000;
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, delay, Period);
}
public static void fn(){
File file = new File("E:\\data\\data.txt");
FileWriter fw = null;
String str = null;
String s = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String s1 = df.format(new Date())+" ";
try {
URL url = new URL("http://api.1yyg.com/JPData?action=totalBuyCount&fun=jsonp1456738798703&_=1456738803768");
Scanner in = new Scanner(url.openStream());
while (in.hasNextLine()) {
str = in.nextLine();
String[] s2 =str.split(":");
String[] s3 = s2[2].split(",");
String s4 = s3[0];
s = s1 +s4+"\r\n";
}
fw = new FileWriter(file, true);
fw.write(s);
} catch (Exception e) {
System.out.println(e.toString());
} finally {
if (fw != null)
try {
fw.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败!");
}
}
}
}
获取到数据后,可以进行分析。
如有侵犯到1元云购,请联系我,我会及时删除!
标签:
原文地址:http://www.cnblogs.com/xiaochongchong/p/5390326.html