使用jsoup实现在页面中获得指定的内容的一个小demo,第一次接触这方面的内容。希望以后有机会能够深入学习一些爬虫相关的技术。
1、需求
从网站页面中读取指定的内容,并在控制台将指定的内容打印。
2、控制台打印
3、代码实现
package test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class Test {
public static void main(String[] args) {
//用来存放获取到的有用数据
ArrayList<String> resultList = new ArrayList<String>();
//用来存放每一条数据记录,数据格式为:招聘职位:xxxx\t薪水:xxxx\t公司名称:xxxx\t
StringBuffer str = new StringBuffer();
//从指定网址获得的Document对象
Document doc = null;
try {
doc = Jsoup.connect("http://www.51jrq.com/vita/allpositions?p=1&type=&jobcity=&nature=&salary=&industry=&keywork=java").userAgent
("Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko").timeout(30000).get();
} catch (IOException e) {
e.printStackTrace();
}
//获取公司名称
Elements ListCop = doc.getElementsByAttributeValue("class","cop");
//获取职位名称
Elements ListPosit = doc.getElementsByAttributeValue("class","posit");
//获取薪水
Elements ListSalary = doc.getElementsByAttributeValue("class","salary");
int minSize = Math.min(Math.min(ListCop.size(),ListPosit.size()),ListSalary.size());
for(int i=0;i< minSize;i++){
str.append("招聘职位:"+ListPosit.get(i).getElementsByTag("a").text().trim()).append("\t");
str.append("薪水待遇:"+ListSalary.get(i).text().trim()).append("\t");
str.append("公司名称:"+ListCop.get(i).getElementsByTag("a").text().trim()).append("\t");
//将str数据添加到resultList中
resultList.add(str.toString());
str = new StringBuffer();
}
//遍历结果控制台打印
Iterator<String> iterator = resultList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
4、依赖jar包
jsoup-1.10.2.jar