申通java入职流程_java查询申通快递

1.用到了htmlunit的架包

2.可用于Js传值网页的抓取

3.速度比较慢,求牛人给个优化建议,增加查询速度

1.[代码]用到了htmlunit的架包

package org.sjcx.tool;

import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class WebClientTest {

public void getElements(){

try{

WebClient webClient = new WebClient();

//设置webClient的相关参数

webClient.getOptions().setJavaScriptEnabled(true);

webClient.getOptions().setCssEnabled(false);

webClient.setAjaxController(new NicelyResynchronizingAjaxController());

webClient.getOptions().setThrowExceptionOnScriptError(false);

//模拟浏览器打开一个目标网址

String express_no = "http://q1.sto.cn/chaxun/result?express_no=";

String sn = "868120614072";//由于申通的快递单号过长,就选择使用String类型

HtmlPage rootPage= webClient.getPage(express_no + sn);

System.out.println("为了获取js执行的数据 线程开始沉睡等待");

Thread.sleep(1000); //主要是这个线程的等待 因为js加载也是需要时间的

System.out.println("线程结束沉睡");

String html = rootPage.asXml();//网页

// String html = rootPage.asText();//文本

int indexOf = html.indexOf("");

int indexEnd = html.indexOf("");

System.out.println(html.substring(indexOf, indexEnd));

}catch(Exception e){

}

}

public static void main(String[] args) throws Exception {

new WebClientTest().getElements();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的按手机号查找快递Java 代码示例: ```java import java.util.HashMap; import java.util.Map; public class ExpressDeliverySystem { private Map<String, String> expressDeliveryMap; public ExpressDeliverySystem() { expressDeliveryMap = new HashMap<>(); expressDeliveryMap.put("18888888888", "顺丰快递"); expressDeliveryMap.put("17777777777", "圆通快递"); expressDeliveryMap.put("16666666666", "中通快递"); expressDeliveryMap.put("15555555555", "申通快递"); expressDeliveryMap.put("14444444444", "韵达快递"); } public String getExpressDeliveryByPhoneNumber(String phoneNumber) { return expressDeliveryMap.get(phoneNumber); } public static void main(String[] args) { ExpressDeliverySystem expressDeliverySystem = new ExpressDeliverySystem(); String phoneNumber = "18888888888"; String expressDelivery = expressDeliverySystem.getExpressDeliveryByPhoneNumber(phoneNumber); if (expressDelivery != null) { System.out.println("手机号 " + phoneNumber + " 对应的快递公司是:" + expressDelivery); } else { System.out.println("手机号 " + phoneNumber + " 没有对应的快递公司信息"); } } } ``` 在本例中,我们使用了一个 `Map` 对象来存储手机号和对应的快递公司信息。在 `getExpressDeliveryByPhoneNumber` 方法中,我们可以通过传入的手机号获取对应的快递公司信息。在 `main` 方法中,我们通过调用 `getExpressDeliveryByPhoneNumber` 方法并传入一个手机号来获取对应的快递公司信息,并打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值