package zeze;

 import java.io.IOException;

 import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements; /**
*
* @ClassName: Tiantian
* @Description: 快递100天天快递查询
* @author zeze
* @date 2015年11月2日 下午2:28:46
*
*/
public class Tiantian { public static void main(String[] args) throws IOException, JSONException {
String url = "http://www.kuaidi100.com/query?type=tiantian&postid=666198673845&id=1&valicode=&temp=0.42161923577077687";// 获取地址
int num = 0;
// 设置查询参数
for (int j = 0; j < 1; j++) { Connection conn = Jsoup.connect(url);
String key = "666198673845";
String b = key.substring(0, 5);
String c = key.substring(5, 12); int d = Integer.parseInt(c);
key = b + (d + j);// 生成快递单号
conn.data("postid", key);// 设置关键字查询字段 Document doc = null;
doc = conn.timeout(100000).get();// 设置请求类型为post型,超时100000毫秒 Elements results = null;
System.out.println("天天快递单号:" + key + " 当前查询次数:" + (j + 1));
results = doc.select("body");// 处理返回数据
String json = results.text();// 获取快递状态信息
System.out.println(json);
JSONObject obj = new JSONObject(json);
//JSONArray jsonArray=new JSONArray(json);
System.out.println("订单号(nu):"+obj.getString("nu"));
System.out.println("查询的快递公司代码(com):"+obj.getString("com"));
System.out.println("查询结果状态(status):"+obj.getString("status"));
System.out.println("快递单当前的状态(state) :"+obj.getString("state"));
System.out.println("数据(data):"+obj.getString("data")); JSONArray jsonArray=new JSONArray(obj.getString("data"));
for(int i=0;i<jsonArray.length();i++)
{
JSONObject jsonObject = jsonArray.getJSONObject(i);//时间
String context = jsonObject.getString("context");
String time = jsonObject.getString("time");
System.out.println(time+" "+context);
} }
System.out.println("本次成功查询到的订单数为:" + num); }
}
 package zeze;

 import java.io.IOException;

 import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements; import Dao.MysqlDao;
import bean.Info; /**
*
* @ClassName: Tiantian
* @Description: 快递100天天快递查询
* @author zeze
* @date 2015年11月2日 下午2:28:46
*
*/
public class Tiantian { public static void main(String[] args) throws IOException, JSONException { int num = 0;
// 设置查询参数
for (int j = 0; j < 200; j++) { String key = "666198673945";
String b = key.substring(0, 5);
String c = key.substring(5, 12);
int d = Integer.parseInt(c);
key = b + (d + j);// 生成快递单号 String url = "http://www.kuaidi100.com/query?type=tiantian&postid=" + key + "";// 获取地址
Connection conn = Jsoup.connect(url);// 连接
conn.data("postid", key);// 设置关键字查询字段 Document doc = null;
doc = conn.timeout(100000).get();// 设置请求类型为post型,超时100000毫秒 Elements results = null;
results = doc.select("body");// 处理返回数据
String json = results.text();// 获取快递状态信息 JSONObject obj = new JSONObject(json); // 转为为json对象
int statu=Integer.parseInt(obj.getString("status"));
if ( statu== 201) {
System.out.println("快递单号:" + key + " 当前查询次数:" + (j + 1));
System.out.println(obj.getString("message"));
continue;
}
else {
if (obj.getString("nu").isEmpty()) {// 订单号不存在
continue;
}
else {
num++;
}
System.out.println("快递单号(nu):" + obj.getString("nu") + " 当前查询次数:" + (j + 1));
System.out.println("查询的快递公司代码(com):" + obj.getString("com"));
System.out.println("查询结果状态(status):" + obj.getString("status"));
System.out.println("快递单当前的状态(state) :" + obj.getString("state")); int count = 0;
JSONArray jsonArray = new JSONArray(obj.getString("data"));
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);// 时间
String context = jsonObject.getString("context");
String time = jsonObject.getString("time");
System.out.println(time + " " + context); Info info = new Info();
info.setVar_id(key);
info.setVar_infoid(count);
info.setVar_time(time);
info.setVar_site(context); count++;
MysqlDao mysqlDao = new MysqlDao();// 插入数据库
mysqlDao.Addinfo(info);
} System.out.println("\n/*****************************************/\n");
}
System.out.println("本次成功查询到的订单数为:" + num);
}
}
}

java抓取快递100信息接口的更多相关文章

  1. java抓取快递信息

    package zeze; import java.io.IOException; import org.jsoup.Connection; import org.jsoup.Jsoup; impor ...

  2. Java广度优先爬虫示例(抓取复旦新闻信息)

    一.使用的技术 这个爬虫是近半个月前学习爬虫技术的一个小例子,比较简单,怕时间久了会忘,这里简单总结一下.主要用到的外部Jar包有HttpClient4.3.4,HtmlParser2.1,使用的开发 ...

  3. PHP快速抓取快递信息

    <?php header("Content-type:text/html;charset=utf-8"); /** * Express.class.php 快递查询类 * @ ...

  4. 教您使用java爬虫gecco抓取JD全部商品信息

    gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页.gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定. JD网站的分析 要抓取JD网站的全部商品信息, ...

  5. java 抓取网页图片

    import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Out ...

  6. 使用HtmlAgilityPack抓取Ethereum Tokens信息

    使用HtmlAgilityPack抓取Ethereum Tokens信息 class Program { static void Main(string[] args) { try { for (in ...

  7. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  8. scrapy抓取拉勾网职位信息(一)——scrapy初识及lagou爬虫项目建立

    本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visua ...

  9. Wireshark抓取本地回环接口数据包 RawCap.exe

    Wireshark提供了winpcap可以抓取远程网卡数据包...但我尝试了不成功.后来发现RawCap.exe不仅可以抓取回环接口数据包,远程跑了拿到pcap文件再打开用起来比winpcap更方便最 ...

随机推荐

  1. Bitmap动画

    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html htt ...

  2. css 父层 透明 子层不透明Alpha

    html代码 <div class="user2-register-bg"> <div class="user2-register-con"& ...

  3. ViewController respondsToSelector:]: message sent to deallocated instance

    今天突然遇到这个问题,其实昨天下班的时候就已经有这个问题了, 就是先进入一个画页,然后再快速离开这个画页再进入其他画页就出现这个错误 了 找了好久也没有找出问题来,一开始以为是网络任务没有cancel ...

  4. DrawCall

    [精]draw call 理解和优化 http://bubuko.com/infodetail-387899.html DrawCall 优化 . http://www.cnblogs.com/sof ...

  5. 深刻认识一下session

    session是什么: session即会话,是一种持续性,双向的连接. session和cookie在本质上没什么区别,都是针对http协议的局限性提出的一种保持客户端和服务端会话状态的机制. se ...

  6. js实现99乘法表

    实现99乘法表(输出到页面上) * document.write("<table border='1' bordercolor='blue'>"); //循环行 9 f ...

  7. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  8. java调用存储过程

    在做java调用sqlserver存储过程时遇到了各种各样的问题,不过在不懈的努力之下这些问题还是得以解决了.今天总结一下遇到的问题以及解决的方法. 首先调用存储过程的方法大家都很清楚: String ...

  9. c# 日期函数[string.Format----GetDateTimeFormats]格式 .【转帖备查】

    DateTime dt = DateTime.Now;Label1.Text = dt.ToString();//2005-11-5 13:21:25Label2.Text = dt.ToFileTi ...

  10. NetBeans如何关联两个项目

    在实际工作中,有的项目需要关联其他项目 找到项目-->右键-->属性-->包含路径-->添加文件夹 添加你要的项目即可.