天天看點

一個簡單的基于Jsoup的HTML資訊抓取Java程式

這兩天了解了jsoup這個很不錯的抓取網頁資料的工具,然後試着寫了個小程式,屬于入門級

——這個程式需要jsoup的jar包可以到jsoup的官網下載下傳:http://jsoup.org/download

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;


public class Main {
	public static void main(String[] args) throws IOException {
		//File input = new File("C:/Users/pc/Desktop/input.html");
		//Document doc = Jsoup.parse(input , "GBK");
		String myurl = "http://jw.dhu.edu.cn/dhu/homepage/page/list_news.jsp";
		Document doc = (Document) Jsoup.connect(myurl).get();
		for(Element ele : doc.select("table").select("tr")){
			if(!ele.select("td").toString().equals("")){
				String url = ele.select("td").get(0).select("a").attr("href");
				String text = ele.select("td").get(0).select("a").text();
				String count = ele.select("td").get(0).select("span").text();
				if(url!=""&&getNum(count)>=500){//500完全可以改成靜态全局變量以及手動輸入的方式
					System.out.println(text+"——"+count+"——"+url);
				}
			}
		}
	}
	public static int getNum(String count){//用于提取“浏覽:1234”中的數字
		String ct = count;
		String s= "\\d+";//自然數
		Pattern  pattern=Pattern.compile(s);  
        Matcher  ma=pattern.matcher(ct);  
        if(ma.find()){  
            return Integer.parseInt(ma.group(0)); 
        }
        else return -1; 
	}
}