使用Jsoup进行网页数据抓取

在进行网页数据抓取的时候主要有HtmlParser和Jsoup,下面简单介绍一下Jsoup的使用方法。

在学习jsoup之前最好有一点jquery的编程经验,这样会去jsoup的取值方法以及查找方式会更熟悉。

下面只给出简单的一个方法:

public KaiJiangInfo crawler_k3(){	
		KaiJiangInfo kaiJiangInfo = null;
		try {
			kaiJiangInfo = new KaiJiangInfo();
			kaiJiangInfo.setCzId("563");
			kaiJiangInfo.setCzName("安徽");
			Document doc = Jsoup.connect("http://data.ahfc.gov.cn/k3/index.html").timeout(30000).get();
		     Element e_table = doc.getElementById("chartsTable");
		     Element e_tbody = e_table.select("tbody[id=chartsTbody]").first();
		     Element e_tr = e_tbody.select("tr").get(e_tbody.select("tr").size()-2);
		     String k3_issue = e_tr.select("td[class=line_r]").text();
			kaiJiangInfo.setIssue(k3_issue.trim());
						
			StringBuffer sb = new StringBuffer();
			Elements k3_kjZNum = e_tr.select("td[class=ball01],td[class=ball01 line_r]");
			// 拼接号码用“ ”分隔
			for (int i = 0; i < k3_kjZNum.size(); i++) {
				if (i > 0) {
					sb.append(" " + k3_kjZNum.get(i).text());
				} else {
					sb.append(k3_kjZNum.get(i).text());
				}
			}
			String k3_num = new String(sb);
			kaiJiangInfo.setKjZNum(k3_num.trim());
			
			kaiJiangInfo.setKjDate(CrawlerDateAH.getkjDate("20"+kaiJiangInfo.getIssue()));
			
		} catch (Exception e) {
			log.error(e);
			return null;
		}
		return kaiJiangInfo;		
	}

更多文章见: http://www.16boke.com

你可能感兴趣的:(java,JSoup)