zoukankan      html  css  js  c++  java
  • java抓取快递100信息接口

     1 package zeze;
     2 
     3 import java.io.IOException;
     4 
     5 import org.json.JSONArray;
     6 import org.json.JSONException;
     7 import org.json.JSONObject;
     8 import org.jsoup.Connection;
     9 import org.jsoup.Jsoup;
    10 import org.jsoup.nodes.Document;
    11 import org.jsoup.select.Elements;
    12 
    13 
    14 /**
    15  * 
    16     * @ClassName: Tiantian 
    17     * @Description:  快递100天天快递查询
    18     * @author zeze
    19     * @date 2015年11月2日 下午2:28:46 
    20     *
    21  */
    22 public class Tiantian {
    23 
    24     public static void main(String[] args) throws IOException, JSONException {
    25         String url = "http://www.kuaidi100.com/query?type=tiantian&postid=666198673845&id=1&valicode=&temp=0.42161923577077687";// 获取地址
    26         int num = 0;
    27         // 设置查询参数
    28         for (int j = 0; j < 1; j++) {
    29 
    30             Connection conn = Jsoup.connect(url);
    31             String key = "666198673845";
    32             String b = key.substring(0, 5);
    33             String c = key.substring(5, 12);
    34 
    35             int d = Integer.parseInt(c);
    36             key = b + (d + j);// 生成快递单号
    37             conn.data("postid", key);// 设置关键字查询字段
    38 
    39             Document doc = null;
    40             doc = conn.timeout(100000).get();// 设置请求类型为post型,超时100000毫秒
    41 
    42             Elements results = null;
    43             System.out.println("天天快递单号:" + key + "    当前查询次数:" + (j + 1));
    44             results = doc.select("body");// 处理返回数据
    45             String json = results.text();// 获取快递状态信息
    46             System.out.println(json);
    47             JSONObject obj = new JSONObject(json);  
    48             //JSONArray jsonArray=new JSONArray(json);
    49             System.out.println("订单号(nu):"+obj.getString("nu"));
    50             System.out.println("查询的快递公司代码(com):"+obj.getString("com"));
    51             System.out.println("查询结果状态(status):"+obj.getString("status"));
    52             System.out.println("快递单当前的状态(state) :"+obj.getString("state"));
    53             System.out.println("数据(data):"+obj.getString("data"));
    54             
    55             JSONArray jsonArray=new JSONArray(obj.getString("data"));
    56             for(int i=0;i<jsonArray.length();i++)
    57             {
    58                 JSONObject jsonObject = jsonArray.getJSONObject(i);//时间
    59                 String context = jsonObject.getString("context");
    60                 String time = jsonObject.getString("time");
    61                 System.out.println(time+" "+context);
    62             }
    63             
    64             
    65         }
    66         System.out.println("本次成功查询到的订单数为:" + num);
    67 
    68     }
    69 }
    View Code
     1 package zeze;
     2 
     3 import java.io.IOException;
     4 
     5 import org.json.JSONArray;
     6 import org.json.JSONException;
     7 import org.json.JSONObject;
     8 import org.jsoup.Connection;
     9 import org.jsoup.Jsoup;
    10 import org.jsoup.nodes.Document;
    11 import org.jsoup.select.Elements;
    12 
    13 import Dao.MysqlDao;
    14 import bean.Info;
    15 
    16 /**
    17  * 
    18  * @ClassName: Tiantian
    19  * @Description: 快递100天天快递查询
    20  * @author zeze
    21  * @date 2015年11月2日 下午2:28:46
    22  *
    23  */
    24 public class Tiantian {
    25 
    26     public static void main(String[] args) throws IOException, JSONException {
    27 
    28         int num = 0;
    29         // 设置查询参数
    30         for (int j = 0; j < 200; j++) {
    31 
    32             String key = "666198673945";
    33             String b = key.substring(0, 5);
    34             String c = key.substring(5, 12);
    35             int d = Integer.parseInt(c);
    36             key = b + (d + j);// 生成快递单号
    37 
    38             String url = "http://www.kuaidi100.com/query?type=tiantian&postid=" + key + "";// 获取地址
    39             Connection conn = Jsoup.connect(url);// 连接
    40             conn.data("postid", key);// 设置关键字查询字段
    41 
    42             Document doc = null;
    43             doc = conn.timeout(100000).get();// 设置请求类型为post型,超时100000毫秒
    44 
    45             Elements results = null;
    46             results = doc.select("body");// 处理返回数据
    47             String json = results.text();// 获取快递状态信息
    48 
    49             JSONObject obj = new JSONObject(json); // 转为为json对象
    50             int statu=Integer.parseInt(obj.getString("status"));
    51             if ( statu== 201) {
    52                 System.out.println("快递单号:" + key + "    当前查询次数:" + (j + 1));
    53                 System.out.println(obj.getString("message"));
    54                 continue;
    55             }
    56             else {
    57                 if (obj.getString("nu").isEmpty()) {// 订单号不存在
    58                     continue;
    59                 }
    60                 else {
    61                     num++;
    62                 }
    63                 System.out.println("快递单号(nu):" + obj.getString("nu") + "    当前查询次数:" + (j + 1));
    64                 System.out.println("查询的快递公司代码(com):" + obj.getString("com"));
    65                 System.out.println("查询结果状态(status):" + obj.getString("status"));
    66                 System.out.println("快递单当前的状态(state) :" + obj.getString("state"));
    67 
    68                 int count = 0;
    69                 JSONArray jsonArray = new JSONArray(obj.getString("data"));
    70                 for (int i = 0; i < jsonArray.length(); i++) {
    71                     JSONObject jsonObject = jsonArray.getJSONObject(i);// 时间
    72                     String context = jsonObject.getString("context");
    73                     String time = jsonObject.getString("time");
    74                     System.out.println(time + " " + context);
    75 
    76                     Info info = new Info();
    77                     info.setVar_id(key);
    78                     info.setVar_infoid(count);
    79                     info.setVar_time(time);
    80                     info.setVar_site(context);
    81 
    82                     count++;
    83                     MysqlDao mysqlDao = new MysqlDao();// 插入数据库
    84                     mysqlDao.Addinfo(info);
    85                 }
    86 
    87                 System.out.println("
    /*****************************************/
    ");
    88             }
    89             System.out.println("本次成功查询到的订单数为:" + num);
    90         }
    91     }
    92 }
    View Code
  • 相关阅读:
    ApiController实现自定义身份认证
    类型参数的约束(C# 编程指南)
    C# 交集、并集、差集
    Winform多线程使用委托操作控件
    ShowWindowAsync系统方法cmdShow参数值含义
    xtraTabbedMdiManager控件切换时控件不更新的问题
    ApiController默认使用Json格式
    css单位介绍em ex ch rem vw vh vm cm mm in pt pc px
    JavaScript 函数大全
    css3动画整理
  • 原文地址:https://www.cnblogs.com/zeze/p/4930473.html
Copyright © 2011-2022 走看看