• 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
  • 相关阅读:
    Arthur J.Riel的61条面向对象设计的经验原则[ZT]
    06年的CS Sub,挺像考研考纲的。。平时学习的时候,可以参考一下~
    Interop时候.Net和Win32对应数据类型
    Asp.Net使用POST方法最简单的实现
    在MasterPage中实现本地化
    最近MS比较High。。。
    语无伦次一下~
    初试Mono~ Virtual Server 果然强大~
    电竟3周年了,纪念一下。。
    又见了点市面~
  • 原文地址:https://www.cnblogs.com/zeze/p/4930473.html
Copyright © 2020-2023  润新知