1. 程式人生 > >java小作業(十九)

java小作業(十九)

1.自己嘗試去51job上爬取北京地區Java,php,python等三個行業的招聘的人數,且對獲取到的結果按照從大到小的順序排列出來

package com.sj.bd;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;

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

public class SpiderForJob {
	public static void main(String[] args) throws IOException {
		//建立查詢array
		String[]array={"java","php","python"};
		Map<Integer, String> map = new HashMap<Integer, String>();//map物件
		for (int i = 0; i < array.length; i++) {
			//url地址
			String url = "https://search.51job.com/list/010000,000000,0000,00,9,99,"+array[i]+",2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=";
			//獲取document文件
			Document document = Jsoup.connect(url).post();
			
			//獲取招聘人數資訊的文字
			String numString = document.getElementsByClass("rt").get(0).text();
			//正則表示式,獲取數字
			String regex = "[^0-9]";
			numString = numString.replaceAll(regex, "");
			//字串轉整形
			int num = Integer.parseInt(numString);
			map.put(num, array[i]+"招聘人數");
			
		}
		TreeMap treemap = new TreeMap(map);//升序排序
		Set set2 = treemap.entrySet();//存入集合
		Object[] array2 = set2.toArray();//存入陣列
		for (int i = array2.length-1; i >=0 ; i--) {//反向輸出
			System.out.println(array2[i]);
		}
        
		
	}
}