java小作業(十九)
阿新 • • 發佈:2018-12-11
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°reefrom=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]); } } }