一 jsoup的主要功能如下:
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可操作HTML元素、属性、文本;
jsoup是基于MIT协议发布的,可放心使用于商业项目。
二 jsoup包
1.所使用到的jar包:jsoup-*.jar
三 jsoup发动post请求来获取指定接口的返回数据
项目的工程结构
接下来是配置文件(post的请求参数)
url = http://www.okooo.com/Lottery06/SportterySoccer/ajax.php?action=getLotteryBonus
LotteryNo = 2017-03-08
MultiNum = 1
MinHit=0
MaxHit=0
type=SportterySoccerMix
Matches=3002:16;3003:15,11;3004:14,13;3005:11,13
AbsMatches=
PassTypeStr=4_1,2_1,3_1
测试类
package com.ok.test;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Test {
//程序主入口
public static void main(String[] args) {
//获取配置参数
String lotteryNo = getProperties(LotteryNo);
String Multiunm = getProperties(MultiNum);
String minhit = getProperties(MinHit);
String maxhit = getProperties(MaxHit);
String type = getProperties(type);
String matches = getProperties(Matches);
String absmatche = getProperties(AbsMatches);
String passTypestr = getProperties(PassTypeStr);
try {
//jsoup向指定页面发送post请求
postOk(lotteryNo, Multiunm, minhit, maxhit, type, matches, absmatche, passTypestr);
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* jsoup向指定的页面发送post请求
*/
public static String postOk(String lotteryNo,String Multiunm ,String minhit,String maxhit,String type ,String matches,String absmatche,String passTypestr ) throws IOException{
lotteryNo = getProperties(LotteryNo);
//获取请求连接
Connection con = Jsoup.connect(http://www.okooo.com/Lottery06/SportterySoccer/ajax.php?action=getLotteryBonus).userAgent(Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31);
//发送参数
con.data(LotteryNo, lotteryNo);
con.data(MultiNum,Multiunm);
con.data(MinHit, minhit);
con.data(MaxHit, maxhit);
con.data(type,type);
con.data(Matches,matches);
con.data(AbsMatches, absmatche);
con.data(PassTypeStr, passTypestr);
Document doc = con.post();
//将获取到的内容打印出来
System.out.println(doc.body().text());
return doc.toString();
}
/*
* 读取配置信息
*/
public static String getProperties(String key){
Properties props = new Properties();
try {
//读取配置文件
FileInputStream in = new FileInputStream(config/config.properties);
props.load(in);
//关闭资源
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return props.getProperty(key);
}
}
返回结果:
返回的结果是一个json数组,这样我就可以将其中的有效数据解析出来操作使用了。