原文链接:https://www.cnblogs.com/lkxsnow/p/5380164.html
本文将博客内容写成一个demo,内含所需jar包和源码,可直接运行,下载地址:https://download.csdn.net/download/qq_30307137/10867061
首先展示我们需要抓取的网页,和抓取之后我们获得的数据:
下面开始我们的编码:
新建一个model类,是需要抓取数据的实体类:
package test;
/**
* 万年历工具实体类
*
* @author 溯源blog
* 2016年4月11日
*/
public class Almanac {
private String solar; /* 阳历 e.g.2016年 4月11日 星期一 */
private String lunar; /* 阴历 e.g. 猴年 三月初五*/
private String chineseAra; /* 天干地支纪年法 e.g.丙申年 壬辰月 癸亥日*/
private String should; /* 宜e.g. 求子 祈福 开光 祭祀 安床*/
private String avoid; /* 忌 e.g. 玉堂(黄道)危日,忌出行*/
public String getSolar() {
return solar;
}
public void setSolar(String date) {
this.solar = date;
}
public String getLunar() {
return lunar;
}
public void setLunar(String lunar) {
this.lunar = lunar;
}
public String getChineseAra() {
return chineseAra;
}
public void setChineseAra(String chineseAra) {
this.chineseAra = chineseAra;
}
public String getAvoid() {
return avoid;
}
public void setAvoid(String avoid) {
this.avoid = avoid;
}
public String getShould() {
return should;
}
public void setShould(String should) {
this.should = should;
}
public Almanac(String solar, String lunar, String chineseAra, String should,
String avoid) {
this.solar = solar;
this.lunar = lunar;
this.chineseAra = chineseAra;
this.should = should;
this.avoid = avoid;
}
}
接下来是一个工具类,用来解析网页的数据并提取想要的信息
package test;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
*类描述 : 2345万年历信息爬取工具
*
* @version 1.0
* @author 溯源blog
*
* 创建时间 : 2016年4月11日 下午14:15:44
* 修改历史 :
*
* 修改人 修改时间 修改内容
* --------------- ------------------- -----------------------------------
*
/*
* 获取公历时间,用yyyy年MM月dd日 EEEE格式表示。
* @return yyyy年MM月dd日 EEEE
*/
private static String getSolarDate() {
Calendar calendar = Calendar.getInstance();
Date solarDate = calendar.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 EEEE");
return formatter.format(solarDate);
}
}
最后一个是测试类:
package test;
public class AlmanacUtilTest {
public static void main(String args[]){
Almanac almanac=AlmanacUtil.getAlmanac();
System.out.println("公历时间:"+almanac.getSolar());
System.out.println("农历时间:"+almanac.getLunar());
System.out.println("天干地支:"+almanac.getChineseAra());
System.out.println("宜:"+almanac.getShould());
System.out.println("忌:"+almanac.getAvoid());
}
}
到此为止,你就可以成功抓取网页的数据了