这几天在学习Java解析xml,突然想到Dom能不能解析html,结果试了半天行不通,然后就去查了一些资料,发现很多人都在用Jsoup解析html文件,然后研究了一下,写了一个简单的实例,感觉还有很多地方需要润色,在这里分享一下我的实例,欢迎交流指教!

  后续想通过Java把数据导入到Excel或者生成一个报表!

 1 package gethtml;
 2
 3
 4
 5 import java.io.IOException;
 6 import org.jsoup.Jsoup;
 7 import org.jsoup.nodes.Document;
 8 import org.jsoup.nodes.Element;
 9 import org.jsoup.select.Elements;
10
11 /**从智联招聘获取招聘信息
12  * @author syskey
13  * @url 智联招聘网站链接(建议不要更改)
14  * @city 搜索工作的城市
15  * @keywrods 搜索工作的相关关键字
16  */
17
18 public class JsoupHtml {
19
20     private String url="http://sou.zhaopin.com/jobs/searchresult.ashx?jl=";  //智联招聘网站
21     private  String city="西安"; //搜索工作的城市
22     private  String keywords="java";  //搜索工作的关键字
23     public JsoupHtml(String city,String keywords){
24         this.city=city;
25         this.keywords =keywords;
26
27     }
28
29     public void getZhiLianWork(){
30         try {
31             for (int i=0;i<10;i++) {
32                     System.out.println("*********开始遍历第"+(i+1)+"页的求职信息*********");
33                     Document doc = Jsoup.connect(url+city+"&kw="+keywords+"&p="+(i+1)+"&isadv=0").get();
34                     Element content = doc.getElementById("newlist_list_content_table");
35                     Elements zwmcEls = content.getElementsByClass("zwmc");
36                     Elements gsmcEls = content.getElementsByClass("gsmc");
37                     Elements zwyxEls = content.getElementsByClass("zwyx");
38                     Elements gzddEls = content.getElementsByClass("gzdd");
39                     Elements gxsjEls = content.getElementsByClass("gxsj");
40                     for(int j = 0;j<zwmcEls .size();j++){
41
42                         System.out.println(
43                                 zwmcEls.get(j).tagName("a").text()+"*****"+gsmcEls.get(j).tagName("a").text()+
44                                 "*****"+zwyxEls.get(j).tagName("a").text()+"*****"+gzddEls.get(j).tagName("a").text()+
45                                 "*****"+gxsjEls.get(j).tagName("a").text());
46                         System.out.println();
47                 }
48                     System.out.println("*********结束遍历第"+(i+1)+"页的求职信息*********");
49
50             }
51
52         } catch (IOException e) {
53             // TODO Auto-generated catch block
54             e.printStackTrace();
55         }
56     }
57     public static void main(String[] args) {
58
59         JsoupHtml jHtml = new JsoupHtml("上海", "java");
60         jHtml.getZhiLianWork();
61
62     }
63
64 }

  更新源代码,支持生成html表格:

package jsouphtml;import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class JsoupHtml {public static void main(String[] args) {       try {String url ="http://sou.zhaopin.com/jobs/searchresult.ashx?";String city ="西安";String keywords = "java";BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.html"),"utf-8"));bWriter.write("");File input = new File("input.html");Document doc2 = Jsoup.parse(input, "UTF-8",   "");Element table = doc2.getElementById("workinfo");table.text("");Element theader = table.appendElement("tr");theader.appendElement("th").text("序号");theader.appendElement("th").text("职位名称");theader.appendElement("th").text("公司名称");theader.appendElement("th").text("职位月薪");theader.appendElement("th").text("工作地点");theader.appendElement("th").text("发布日期");           for(int page=0;page<10;page++){               Document doc = Jsoup.connect(url+city+"&kw="+keywords+"&p="+page).get();                Element content = doc.getElementById("newlist_list_content_table");          Elements zwmcEls = content.getElementsByClass("zwmc");Elements gsmcEls = content.getElementsByClass("gsmc");          Elements zwyxEls = content.getElementsByClass("zwyx");           Elements gzddEls = content.getElementsByClass("gzdd");           Elements gxsjEls = content.getElementsByClass("gxsj");for(int i = 1;i<zwmcEls .size();i++){                Element tr =table.appendElement("tr");tr.appendElement("td").text((page+1)+"-"+i);tr.appendElement("td").text(zwmcEls.get(i).tagName("a").text());tr.appendElement("td").text(gsmcEls.get(i).tagName("a").text());tr.appendElement("td").text(zwyxEls.get(i).tagName("a").text());tr.appendElement("td").text(gzddEls.get(i).tagName("a").text());tr.appendElement("td").text(gxsjEls.get(i).tagName("a").text());}}System.out.println(doc2.html());bWriter.write(doc2.html());bWriter.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

  output.html模板:

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>智联工作信息</title><style>body{margin:0;padding:0;}.header{height:100px;width:100%;background:#39c;color:#fff;text-align:center;line-height:100px;font-size:40px;font-family:"微软雅黑";}.body{width:100%;background:#fff;}.body table{width:90%;margin:0 auto;color:#2e2e2e;border:1px solid #cad9ea; border-collapse: collapse; }.body table th,td{min-width:50px;max-width:300px;}.feeter{height:30px;width:100%;background:#39c;color:#fff;text-align:center;line-height:30px;font-size:14px;font-family:"微软雅黑";}</style></head><body><div class="header">智联工作信息</div><div class="body"><table class="work" border="1"><tbody id="workinfo"></tbody></table></div><div class="feeter">版权所有 翻版必究@2017 sysker</div></body>
</html>

  

转载于:https://www.cnblogs.com/caoleiCoding/p/6476203.html

Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息)相关推荐

  1. 【Java】基于jsoup爬虫实现(从智联获取工作信息)

    这几天在学习Java解析xml,突然想到Dom能不能解析html,结果试了半天行不通,然后就去查了一些资料,发现很多人都在用Jsoup解析html文件,然后研究了一下,写了一个简单的实例,感觉还有很多 ...

  2. 智联招聘python岗位_Python爬虫爬取智联招聘职位信息

    import urllib2 import re import xlwt '''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!''' cl ...

  3. Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...

  4. 【Python爬虫案例学习20】Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 ####基本环境配置: Python版本:2.7 开发工具:pycharm 系统:win10 ####相关模块: im ...

  5. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片

    [Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...

  6. 基于人人网的简单爬虫(一)——正则表达式

    应课程实验要求,要写一个基于人人网的简单爬虫.实验要求如下: 学会使用一种编程语言实现爬取人人网关系网络的程序.该程序功能如下: 1.  能够输入用户登陆所产生的cookie,允许爬虫对人人网进行爬取 ...

  7. java爬取智联招聘职位信息

    第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息. 技术点:IO流,集合,Jsoup使用,以及前端的知识 代码如下: package com.wty.utils;import java.io ...

  8. Python爬虫爬取智联招聘(进阶版)

    运行平台: Windows   Python版本: Python3.6   IDE: Sublime Text    其他工具:  Chrome浏览器 0.写在前面的话 本文是基于基础版上做的修改,如 ...

  9. Python | 爬虫爬取智联招聘(进阶版)

    上一篇文章中<Python爬虫抓取智联招聘(基础版)>我们已经抓取了智联招聘一些信息,但是那些对于找工作来说还是不够的,今天我们继续深入的抓取智联招聘信息并分析,本文使用到的第三方库很多, ...

最新文章

  1. 【笔记】基于 Mask R-CNN 的玉米田间杂草检测方法
  2. python调用winrar解压_批量文件解压缩脚本(Python3.5 + WinRAR)
  3. Spring AOP(七)之定义切入点
  4. meta 标签的作用
  5. Yii 2.0.3 Advanced版控制器不能包含大写字母的Bug
  6. Qt-textEdit 滚顶条设置只读模式
  7. php php-fpm安装 nginx配置php
  8. oracle12c集群安装—grid安装
  9. 计算机二级office基础知识题库,计算机office二级考试题库
  10. VVC代码阅读(2)compressGOP函数(1)
  11. 简单的APP与PLC通讯
  12. 2022MySQL数据库-基础篇
  13. 快速学习编程语言,快速高效的入门
  14. 关于笔记本电脑Linux下耳机电流噪声--已解决
  15. 【C++】henuACM暑期培训Day11 KMP
  16. python 可视化案例_Python之路 08 数据可视化案例
  17. 洛谷 P1885 Moo
  18. java性能优化总结_35 个 Java 代码性能优化总结(一)
  19. uni-app 实现自定义拍摄头像功能
  20. bert cnn知识抽取模型_BERT的神奇应用

热门文章

  1. 求出100~200之间的素数
  2. 使用PHP实现用户登录和注册的功能
  3. Scrum 项目7.0
  4. CSS分别设置Input样式(按input类型)
  5. 源码梳理——Jedis中的集合JedisByteHashMap
  6. 分布式系统的面试题5
  7. 码云Webhook触发Jenkins自动构建 - Jenkins演练(一)
  8. k8s1.5.4挂载volume之nfs
  9. wpf 控件大小随窗体大小改变而改变
  10. mysql常用命令操作