目录
1.职位解析
使用了jsoup解析获取职位信息
2.需求
- 1.搜索查询职位的地址为https://sou.zhaopin.com/jobs/searchresult.ashx?jl=厦门&kw=大数据&p=1&isadv=0
- 2.统计职位信息,保存到文本中
3.实现步骤
- 1.查看源码
启用浏览器开发者模式 查看源代码
- 2.使用jsoup连接访问地址
Connection connection = Jsoup.connect(“http://sou.zhaopin.com/jobs/searchresult.ashx?”);
- 2.设置关键字
网络传输中有get方式和post方式,使用get方式传值格式为:访问地址?参数名1=参数值1&参数名2=参数值2
https://sou.zhaopin.com/jobs/searchresult.ashx?jl=厦门&kw=大数据&p=1&isadv=0
https://sou.zhaopin.com/jobs/searchresult.ashx?jl=北京&kw=java开发工程师&p=1&isadv=0
可以发现 kw 为职位名的参数名,jl为地址的参数名
//设置关键字
//?jl=厦门&kw=大数据&sm=0&p=1&source=0
//?jl=北京&kw=java开发工程师&p=1&isadv=0
connection.data("kw","大数据");
connection.data("jl","厦门");
//connection.data("kt","2"); // 公司搜索
- 3.获取网页的内容
//相当于按下回车键 docment 就是网页的内容
Document document = connection.timeout(10000).get();
4.摘取需要的内容
查看网页源代码,职位列表被 id为”newlist_list_content_table”的div块包围,每个职位被class为“newlist”的table包围,通过id 和class 可以查找到每一行的数据。
//查找到界面里面每一行的数据,存放在数组中
Elements elements = document.select("#newlist_list_content_table").select(".newlist");
5.查找信息
每个table中: 职位名称被class=”zwmc”包围,公司被class=”gsmc”包围, 职位月薪被”zwyx”包围,通过Element 读取每个元素的文本信息。
for(Element e : elements){
String job = e.select(".zwmc").text();
String compine = e.select(".gsmc").text();
String money = e.select(".zwyx").text();
System.out.println(job+ "\t\t"+compine+"\t\t"+money);
}
4.代码总结
- 1.java代码
public static void main(String[] args) throws IOException {
FileWriter fWriter = new FileWriter("D:/职位搜索.txt");
BufferedWriter writer = new BufferedWriter(fWriter);
//url 链接地址 统一资源定位符
Connection connection = Jsoup.connect("http://sou.zhaopin.com/jobs/searchresult.ashx?");
//设置关键字
//?jl=厦门&kw=大数据&sm=0&p=1&source=0
//?jl=北京&kw=java开发工程师&p=1&isadv=0
connection.data("kw","大数据");
connection.data("jl","厦门");
//connection.data("kt","2"); // 公司搜索
//相当于按下回车键 docment 就是网页的内容
Document document = connection.timeout(10000).get();
//查找到界面里面每一行的数据,存放在数组中
Elements elements = document.select("#newlist_list_content_table").select(".newlist");
for(Element e : elements){
String job = e.select(".zwmc").text();
String compine = e.select(".gsmc").text();
String money = e.select(".zwyx").text();
System.out.println(job+ "\t\t"+compine+"\t\t"+money);
writer.write(job +"----"+compine+"----"+money);
writer.newLine();
}
writer.flush();
}
- 运行效果
- 浏览器窗口
5.jar
本次引用的是jsoup-1.7.3.jar,本次就不上传了,优快云资源传不上去了,别人已经上传过,请自行去搜索下载吧
若是需要,可在本文留言。