zoukankan      html  css  js  c++  java
  • 自己查增益速递单号信息

    上周日在家在X宝上买了一副双龙板,卖家发的是一个我从未听过的快递(我只知道四大通和S风这种满大街都有的,其他的真心不知道),上海增益速递。

    因公司不让上X宝所以而我又希望实时关注我的板板,所以只能记下快递单号,在公司闲暇时间就查一下。到公司第一反应是查度娘,找到快递公司官网,然后输入快递单号、输入验证码查询,无意中发现,原来查询的信息都在URL上(是get方式提交呦,http://www.zeny-express.com/index.php?ydnumber=XXXXXXXXXXXX&code=3&dosearch=&c=chaxun&a=yundan),我就猜想我要是不输入验证码是否可以呢,为了便于记忆我将URL保存了下来http://www.zeny-express.com/index.php?ydnumber=XXXXXXXXXXXX&dosearch=&c=chaxun&a=yundan,试了一下不行,但我随即关闭了浏览器,再打开浏览器直接访问URLhttp://www.zeny-express.com/index.php?ydnumber=XXXXXXXXXXXX&code=3&dosearch=&c=chaxun&a=yundan,居然可以,显示除了信息。

    嘿嘿,随即我就写了个程序

    import java.io.InputStream;
    import java.net.URL;
    import java.net.URLConnection;
    
    public class ZenyExpress {
    
        public static void main(String[] args) throws Exception {
            zeny();// 增益速递 http://www.zeny-express.com
        }
    
    
        public static void zeny() throws Exception {
            String number = "XXXXXXXXXXXX";
            //http://www.zeny-express.com/index.php?ydnumber=XXXXXXXXXXXX&dosearch=&c=chaxun&a=yundan
            URL url = new URL("http://www.zeny-express.com/index.php?ydnumber=" + number + "&dosearch=&c=chaxun&a=yundan");
            // System.out.println("==================以下为网站内容==================");
            URLConnection urlcon = url.openConnection();
            int i = urlcon.getContentLength();
    
            StringBuffer sb = new StringBuffer();
            if (i > 0) {
                InputStream is = urlcon.getInputStream();
    
                byte[] buf = new byte[1024];
                while ((is.read(buf)) != -1) {
                    sb.append(new String(buf, "Unicode"));
                }
                is.close();
            } else {
                System.out.println("网站响应内容为空...");
            }
    
            String content = new String(sb.toString().getBytes("Unicode"), "UTF-8");
    
            int startIndex = content.indexOf("<span><strong>运单号");
            System.out.println(content.substring(startIndex + 14, startIndex + 34));// 运单号:[ XXXXXXXXXXXX ]
    
            int endIndex = content.indexOf("/table");
            String myContent = content.substring(startIndex + 97, endIndex - 40);
            String[] messages = myContent.split("
    ");
            String message = null;
            for (int j = 0; j < messages.length; j++) {
                message = messages[j];
                if (j % 3 == 0) {
                    if (message.trim().length() != 0) {
                        System.out.print(message.substring(68, 87));// 时间
                    }
                }
                if (j % 3 == 2) {
                    System.out.println(message.substring(12, message.length() - 6));// 具体信息
                }
            }
    
        }
    }

    程序可以自动打印出时间和快递订单的信息。

     

    我的娱乐就到这里了,至于网站安全性我就不多说了,仅供娱乐。

  • 相关阅读:
    Swift 正式开源, 包括 Swift 核心库和包管理器
    Swift 3 新特性
    iOS10 CoreData新特性
    iOS各个版本的新特性介绍
    iOS WKWebView详解
    Swift XML解析库
    ios辅助功能之voiceover实战
    iOS 内存管理机制和循环引用处理方法
    Swift 关键字汇总
    Swift 自动布局框架-SnapKit
  • 原文地址:https://www.cnblogs.com/cRaZy-TyKeIo/p/3892140.html
Copyright © 2011-2022 走看看