最近,1元购物比较火,这种众筹形式的购物,购买者出很小的费用,就能获得一个得到喜欢的物品。有人说这是个骗局,也有人趋之若鹜的每天在上面购物,这里不做评论。网易也做这个模式,名字是1元云购,1元夺宝。
网易云购 www.1yyg.com的网站上顶部有个累计参与人次的统计,对这个比较好奇,想着统计一个时间段参与人次的变化。
打开网站,加载页面的过程中,打开调试,查看network,注意不断重复的请求:
上面标注的这个请求不断的发送,网页上实时变化也就累计参与人次的统计,这样就确定了请求。
打开这个请求的网址后:
这明显是jsonp嘛,那就尝试着网页上获取下,每1s钟显示一次:
jsonp测试例子 远程数据如下:
效果:
可以发现其中的规律,没5s后台更新一次。
当然,可以用Java爬网页的方式这个数据:间隔每 60 * 1000ms,即1分钟 向目标文件写入一次,
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元云购,请联系我,我会及时删除!