资源简介
通过java代码实现一个简单的网络爬虫效果,爬取智联招聘网站上的职位名,公司名,工作地点,工作薪资等。
代码片段和文件信息
package com.wpc.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* 用java代码实现一个简单的网络爬虫
*
* @author wpc
* @创建时间:2018-01-11
*/
public class DownloadHtml {
/**
*
* @param url 要抓取的网页地址
* @param encoding 要抓取网页编码
* @return
*/
public static String getHtmlResourceByUrl(String url String encoding) {
URL urlObj = null;
URLConnection uc = null;
InputStreamReader isr = null;
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
// 建立网络连接
try {
urlObj = new URL(url);
// 打开网络连接
uc = urlObj.openConnection();
// 建立文件输入流
isr = new InputStreamReader(uc.getInputStream() encoding);
// 建立缓存导入 将网页源代码下载下来
reader = new BufferedReader(isr);
// 临时
String temp = null;
while ((temp = reader.readLine()) != null) {// 一次读一行 只要不为空就说明没读完继续读
// System.out.println(temp+“\n“);
buffer.append(temp + “\n“);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关流
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return buffer.toString();
}
/**
*
* @param url 要抓取的网页地址
* @param encoding 要抓取网页编码
*/
public static void getJobInfo(String url String encoding) {
// 拿到网页源代码
String html = getHtmlResourceByUrl(url encoding);
// 这里需要jar包 jsoupd.jar包
// 我们要抓取的智联招聘的职位,按放12点击最左上角的按钮
Document document = Jsoup.parse(html);
// 获取newlist_list_context_table里面的内容 id
// id是唯一的,通过id那到容器(指定了容器)
Element element = document.getElementById(“dw_tlc_mk“);
// 获取结果 根据class进一步确定目标的内容位置
Elements elements = document.getElementsByClass(“el“);
// 如果要从某个学校的每个教室拿某个东西,那么Element element =
// document.getElementById(“dw_tlc_mk“);表示先通过dw_tlc_mk找到学校(dw_tlc_mk相当于学校名字是唯一的)
// 那么Elements elements =
// document.getElementsByClass(“el“);表示找到每一间教室,el则表示教室(不止一间),之后的循环就是从每一件教室那你要的东西。
for (Element el : elements) {
// 职位名
String jobtitle = el.getElementsByClass(“t1“).text();
// System.out.println(jobtitle);
// 公司名
String companyName = el.getElementsByClass(“t2“).text();
// System.out.println(companyName);
// 工作地点
String jobAddress = el.getElementsByClass(“t3“).text();
// System.out.println(jobAddress);
// 工资
String wages = el.getElementsByClass(“t4“).text();
// System.out.println(wages);
// 直接在控制台打印
System.out.println(“职位名:“ + jobtitle + “\t公司名:“ + companyName + “\t工作地点:“ + jobAddress + “\t工作:“ + wages);
}
}
public static void main(String[] args) {
//网页地址
String url = “https://search.51job.com/list/190200000000000000999Java%2B%25E6%259E%25B6%25E6%259E%258421.html?lang=c&stype=1&postcha
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-02-15 22:10 java简单网络爬虫\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\
文件 842 2019-01-10 21:11 java简单网络爬虫\Search\.classpath
文件 906 2019-01-10 21:11 java简单网络爬虫\Search\.project
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\.settings\
文件 567 2019-01-10 21:11 java简单网络爬虫\Search\.settings\.jsdtscope
文件 83 2019-01-12 19:35 java简单网络爬虫\Search\.settings\org.eclipse.core.resources.prefs
文件 364 2019-01-10 21:11 java简单网络爬虫\Search\.settings\org.eclipse.jdt.core.prefs
文件 470 2019-01-10 21:11 java简单网络爬虫\Search\.settings\org.eclipse.wst.common.component
文件 345 2019-01-10 21:11 java简单网络爬虫\Search\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2019-01-10 21:11 java简单网络爬虫\Search\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2019-01-10 21:11 java简单网络爬虫\Search\.settings\org.eclipse.wst.jsdt.ui.superType.name
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\WebContent\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\WebContent\me
文件 39 2019-01-10 21:11 java简单网络爬虫\Search\WebContent\me
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\WebContent\WEB-INF\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\WebContent\WEB-INF\lib\
文件 395748 2019-01-10 21:39 java简单网络爬虫\Search\WebContent\WEB-INF\lib\jsoup-1.11.3.jar
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\build\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\build\classes\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\build\classes\com\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\build\classes\com\wpc\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\build\classes\com\wpc\util\
文件 4639 2019-02-15 22:01 java简单网络爬虫\Search\build\classes\com\wpc\util\DateDownUtil.class
文件 3961 2019-02-15 22:01 java简单网络爬虫\Search\build\classes\com\wpc\util\DownloadHtml.class
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\src\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\src\com\
目录 0 2019-02-15 22:07 java简单网络爬虫\Search\src\com\wpc\
目录 0 2019-02-15 22:08 java简单网络爬虫\Search\src\com\wpc\util\
文件 3901 2019-02-15 22:08 java简单网络爬虫\Search\src\com\wpc\util\DownloadHtml.java
文件 35 2019-02-15 22:10 java简单网络爬虫\readme.txt
............此处省略0个文件信息
- 上一篇:联通面试题
- 下一篇:基于JAVA的kmeans算法
相关资源
- 基于JAVA的kmeans算法
- java开发三年项目经验心得
- java网络通信系统的研究与开发代码
- 北邮java作业群体对象.rar
- java作业图形化.rar
- 北邮java选修大作业 购物车
- JAVA数据加密jar包之sunjce_provider.rar
- 客户管理系统Java+数据库
- java回合制游戏
- javaMD5加密
- java学生管理系统没用数据库
- JAVA程序设计 大炮打飞机 福州大学作
- jsp连接SQLserver数据库实现增删改查。
- javafx实现模拟电梯升降
- javaweb图书借阅管理系统171204
- java毕业设计:物业管理系统源码
- Java毕业设计源码:图书管理系统
- java学生成绩管理系统界面设计
- 基于RFID的智能门禁系统
- 百度网盘javaEE.txt
- Java利用vlc实现播放在线视频
- java基础GUI+JDBC学生管理系统
- java拼图游戏项目代码
- 一个简易的计算器 java小程序
- 人工智能自动扫雷
- java实现聊天的服务端
- Java语言程序设计与数据结构基础篇第
- Louvain java实现
- 用java实现2048小游戏的实验报告
- java大作业之留言板
评论
共有 条评论