Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息)
这几天在学习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的简单爬虫实现(从智联获取工作信息)相关推荐
- 【Java】基于jsoup爬虫实现(从智联获取工作信息)
这几天在学习Java解析xml,突然想到Dom能不能解析html,结果试了半天行不通,然后就去查了一些资料,发现很多人都在用Jsoup解析html文件,然后研究了一下,写了一个简单的实例,感觉还有很多 ...
- 智联招聘python岗位_Python爬虫爬取智联招聘职位信息
import urllib2 import re import xlwt '''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!''' cl ...
- Python爬虫爬取智联招聘职位信息
目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...
- 【Python爬虫案例学习20】Python爬虫爬取智联招聘职位信息
目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 ####基本环境配置: Python版本:2.7 开发工具:pycharm 系统:win10 ####相关模块: im ...
- java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片
[Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...
- 基于人人网的简单爬虫(一)——正则表达式
应课程实验要求,要写一个基于人人网的简单爬虫.实验要求如下: 学会使用一种编程语言实现爬取人人网关系网络的程序.该程序功能如下: 1. 能够输入用户登陆所产生的cookie,允许爬虫对人人网进行爬取 ...
- java爬取智联招聘职位信息
第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息. 技术点:IO流,集合,Jsoup使用,以及前端的知识 代码如下: package com.wty.utils;import java.io ...
- Python爬虫爬取智联招聘(进阶版)
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器 0.写在前面的话 本文是基于基础版上做的修改,如 ...
- Python | 爬虫爬取智联招聘(进阶版)
上一篇文章中<Python爬虫抓取智联招聘(基础版)>我们已经抓取了智联招聘一些信息,但是那些对于找工作来说还是不够的,今天我们继续深入的抓取智联招聘信息并分析,本文使用到的第三方库很多, ...
最新文章
- 【笔记】基于 Mask R-CNN 的玉米田间杂草检测方法
- python调用winrar解压_批量文件解压缩脚本(Python3.5 + WinRAR)
- Spring AOP(七)之定义切入点
- meta 标签的作用
- Yii 2.0.3 Advanced版控制器不能包含大写字母的Bug
- Qt-textEdit 滚顶条设置只读模式
- php php-fpm安装 nginx配置php
- oracle12c集群安装—grid安装
- 计算机二级office基础知识题库,计算机office二级考试题库
- VVC代码阅读(2)compressGOP函数(1)
- 简单的APP与PLC通讯
- 2022MySQL数据库-基础篇
- 快速学习编程语言,快速高效的入门
- 关于笔记本电脑Linux下耳机电流噪声--已解决
- 【C++】henuACM暑期培训Day11 KMP
- python 可视化案例_Python之路 08 数据可视化案例
- 洛谷 P1885 Moo
- java性能优化总结_35 个 Java 代码性能优化总结(一)
- uni-app 实现自定义拍摄头像功能
- bert cnn知识抽取模型_BERT的神奇应用