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]);
}
}
}