使用htmlunit爬去某招聘网站部分招聘要求内容

news/2024/5/8 17:05:29/文章来源:https://blog.csdn.net/xiaoguanyusb/article/details/80344184

主代码部分:

package selenium.crawler;import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;import org.testng.annotations.Test;import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;import common.ExcelMethod;public class zhilianzhaopin {@Test  public void test() throws IOException {  WebClient webClient = new  WebClient(BrowserVersion.CHROME);webClient.getOptions().setJavaScriptEnabled(false);  webClient.getOptions().setCssEnabled(false);  webClient.getOptions().setUseInsecureSSL(false);  List<String> urlList =  getZlzpUrl(webClient);try {ExcelMethod ds = new ExcelMethod();ds.readExcel();int row = 0;for (String url : urlList) {List<String> baseInfoList = new ArrayList<>();getResumeInfo(webClient, url, baseInfoList);       	        	for (int i = 0; i < baseInfoList.size(); i++) {       	        		ds.setValueIntoCell("Sheet1", i, row, baseInfoList.get(i));}       	        	row++;System.out.println(baseInfoList.toString());}ds.closeFile();   System.out.println("--------------END---------------");} catch (Exception e) {e.printStackTrace();}}private void getResumeInfo(WebClient webClient, String url, List<String> baseInfoList)throws IOException, MalformedURLException {HtmlPage page = webClient.getPage(url);  List<DomElement> bodyElementList = page.getElementsByTagName("body");List<HtmlElement> divElementList = bodyElementList.get(0).getElementsByTagName("div");for (HtmlElement htmlElement : divElementList) {String classAttr = htmlElement.getAttribute("class");if (classAttr != null || classAttr != "") {if (classAttr.equals("top-fixed-box")) {List<HtmlElement> terminadivElementList = htmlElement.getElementsByTagName("div");List<HtmlElement> h1vElementList =terminadivElementList.get(0).getElementsByTagName("h1");String h1Text = h1vElementList.get(0).getTextContent();List<HtmlElement> h2vElementList =terminadivElementList.get(0).getElementsByTagName("h2");String h2Text = h2vElementList.get(0).getTextContent();baseInfoList.add(h1Text);baseInfoList.add(h2Text);}else if(classAttr.equals("terminalpage clearfix")){List<HtmlElement> terminadivElementList = htmlElement.getElementsByTagName("div");List<HtmlElement> firstUlElementList = terminadivElementList.get(0).getElementsByTagName("ul");List<HtmlElement> firstLiElementList = firstUlElementList.get(0).getElementsByTagName("li");for (HtmlElement liElement : firstLiElementList) {String temp =  liElement.getTextContent();baseInfoList.add(temp);}List<HtmlElement> firstdivElementList = terminadivElementList.get(0).getElementsByTagName("div");List<HtmlElement> detaildivElementList = firstdivElementList.get(0).getElementsByTagName("div");List<HtmlElement> pElementList = detaildivElementList.get(0).getElementsByTagName("p");int i = 0;while (i < 3) {String temp =  pElementList.get(i).getTextContent();i = i+2;baseInfoList.add(temp);}							}}}}private List<String> getZlzpUrl(WebClient webClient) throws IOException, MalformedURLException {List<String> urlList = new ArrayList<>();for (int pageNum = 1; pageNum <= 12; pageNum++) {String url ="http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E9%80%89%E6%8B%A9%E5%9C%B0%E5%8C%BA&kw=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88&p="+ pageNum+ "&isadv=0";  HtmlPage page = webClient.getPage(url);  
//          System.out.println("页面文本:"+page.getTitleText());             DomElement  talbleElement = page.getElementById("newlist_list_content_table");List<HtmlElement> talbleElementList =   talbleElement.getElementsByTagName("table");System.out.println("size: " + talbleElementList.size());for (int i = 1; i < talbleElementList.size(); i++) {List<HtmlElement> trElementList = talbleElementList.get(i).getElementsByTagName("tr");	List<HtmlElement> divElementList = trElementList.get(0).getElementsByTagName("div");List<HtmlElement> aElementList = divElementList.get(0).getElementsByTagName("a");String htef = aElementList.get(0).getAttribute("href");System.out.println(pageNum + "---" + i + "---" + htef);urlList.add(htef);}	}return urlList;}
}


写excel代码

package common;import java.io.File;
import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.Label;
import jxl.write.WriteException;public class ExcelMethod {static Workbook wbook;static WritableWorkbook wwbCopy;static String ExecutedTestCasesSheet;static WritableSheet shSheet;public void readExcel(){try{wbook = Workbook.getWorkbook(new File("D:\\testSampleData.xls"));wwbCopy = Workbook.createWorkbook(new File("D:\\testSampleDataCopy.xls"), wbook);shSheet = wwbCopy.getSheet(0);}catch(Exception e){e.printStackTrace();}}public void setValueIntoCell(String strSheetName,int iColumnNumber, int iRowNumber,String strData) throws WriteException{WritableSheet wshTemp = wwbCopy.getSheet(strSheetName);Label labTemp = new Label(iColumnNumber, iRowNumber, strData);try {wshTemp.addCell(labTemp);} catch (Exception e) {e.printStackTrace();}}public void closeFile(){try {// Closing the writable work bookwwbCopy.write();wwbCopy.close();// Closing the original work bookwbook.close();} catch (Exception e){e.printStackTrace();}}public static void main(String[] args) throws WriteException{ExcelMethod ds = new ExcelMethod();ds.readExcel();ds.setValueIntoCell("Sheet1", 5, 1, "PASS");ds.setValueIntoCell("Sheet1", 5, 2, "FAIL");ds.setValueIntoCell("Sheet1", 5, 3, "PASS");ds.closeFile();}
}


结果截图:




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_854803.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础html5网站开发学习步骤方法

对于新手学习html5的同学来说&#xff0c;想要学好html5首先要有一点学习的方法和路线图&#xff0c;了解清楚之后再开始学习会更加清晰自己的学习效果。 随着互联网的高速发展&#xff0c;近年来HTMl5发展的越来越火热&#xff0c;而在HTML5高薪资、优待遇的诱惑之下&#xf…

新手做网站只需要4个步骤

拥有一个自己的网站&#xff0c;听起来就是一件很酷的事情。很多新手想做一个网站却不知道怎么做&#xff0c;今天呢&#xff0c;我就给有建网站需求的小伙伴们来说一说从建网站的步骤&#xff0c;还有一些常见问题的解决办法。 一、购买域名 在网络上的主机都有自己唯一的标…

新手网站建设指南(2)

网站制作公司数不胜数&#xff0c;每家公司使用域名、服务器的提供商也是不同&#xff0c;制作网站使用代码语言、模板、自主研发的系统都是各不相同。网站整体的设计要好&#xff0c;这个设计&#xff0c;一是指网站的代码设计&#xff0c;最好采用PHPMySQL的形式&#xff0c;…

新手网站建设优化,这些网站为你提供数之不尽的免费素材!(3)

当我们学会建设网页&#xff0c;网站后。我们就开始装设属于自己的世界。在日常学习&#xff0c;工作中&#xff0c;我们没有足够的时间让去原创素材&#xff0c;所以&#xff0c;素材网站就为我们解决了很多燃眉之急。那即使素材网站千千万&#xff0c;要找到合适的素材。 今…

web前端开发项目资源网站,私家珍藏!

1.CodePen&#xff1a; http://codepen.io/ 网站里有很多很酷的特效&#xff0c;而且可以看到效果的源代码&#xff0c;也可以看到实现效果&#xff0c;是一个非常不错的前端开发学习资源网站。 这个是CodePen网站里的一个效果的源码截图&#xff0c;是不是很酷呀&#xff…

零基础html5网站开发学习步骤方法

对于新手学习html5的同学来说&#xff0c;想要学好html5首先要有一点学习的方法和路线图&#xff0c;了解清楚之后再开始学习会更加清晰自己的学习效果。 随着互联网的高速发展&#xff0c;近年来HTMl5发展的越来越火热&#xff0c;而在HTML5高薪资、优待遇的诱惑之下&#xf…

pt搜索网站_搜索pt 1简要介绍

pt搜索网站The ability to search the entire web in less than a second for whatever we fancy knowing is one of the greatest achievements of recent history. But how does it work? What are its building blocks? And, most importantly, … can we hack together o…

小白搭建网站

1. 第一步&#xff1a;使用Flask搭建微型的 Web 框架 Flask是Python中一个微型的Web开发框架。 建立一个工程 flaskr_meitu&#xff0c;我们来做一个美图网站init.py 是应用文件config.py 是配置文件view.py 是视图文件&#xff0c;实现网站请求功能templates/layout.html 是网…

各大型网站架构分析收集

各大型网站架构分析收集 标签&#xff1a; youtubescalability服务器理财web数据库服务器 2008-11-26 14:46 25992人阅读 评论(9) 收藏 举报 分类&#xff1a; Others&#xff08;20&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。…

取代cookie的网站追踪技术:“帆布指纹识别”初探

首页 精选文章 活动日历 行业招聘 关于我们 HTML5梦工场原文链接&#xff1a; QQ安全中心 取代cookie的网站追踪技术&#xff1a;“帆布指纹识别”初探 【前言】 一般情况下&#xff0c;网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体&#xf…

pdf在线分享网站

本文介绍如何将PDF文件在线分享。 所谓的把PDF文件生成一个链接并不是指普通的pdf转换成HTML&#xff0c;而是指将PDF文件变成一个可以打开的URL。这是大家关心的问题&#xff0c;我在网上看到好多人提问该问题&#xff0c;但都是回答的转换功能 找一个普通的pdf文件即可。 进…

SEO优化外链发布-麦瓜海报

对于网站SEO优化人员来说&#xff0c;网站程序和布局方面内部优化做好后&#xff0c;一是做好网站的内容&#xff0c;二是做好网站的外链。网站外链发布有哪些方法呢&#xff1f;还能不能发外链&#xff1f; 做SEO优化离不开外链建设&#xff0c;然而为什么要发外链呢&#xf…

免费发外链的网站

对于网站SEO优化人员来说&#xff0c;网站程序和布局方面内部优化做好后&#xff0c;一是做好网站的内容&#xff0c;二是做好网站的外链。网站外链发布有哪些方法呢&#xff1f;还能不能发外链&#xff1f; .撰写软文 在发布SEO软文的时候&#xff0c;首先要保证所发的软文外…

挖坑指南:网站http请求全变https?

前言 开发的后台单页系统&#xff0c;上到线上测试时&#xff0c;需要配置为php文件。 开始 测试的地址&#xff0c;未使用https&#xff0c;但是vue项目打包后的资源请求都是https的。导致页面加载时&#xff0c;请求不到资源。 实践 最后在页面中发现配置了一个meta: &…

网站重定向-http怎么重定向到https最全解决方案

前言&#xff1a; 本教程主要是对 网站http重定向到https&#xff0c;其中包括目前市面上常用各种服务器环境&#xff08;Apache,Ngnix,IIS7系列&#xff09;设置方法。 下面不啰嗦&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 第一“IIS7” 环境中的设置方法…

同样可用来建站,云服务器和硅云虚拟主机到底哪个更好?

云主机和云虚拟主机都是在近十年很火的云产品&#xff0c;随着云计算技术不断向前推进&#xff0c;传统IDC服务的地盘已经越来越少。 对于个人和企业来说&#xff0c;云服务器和云虚拟主机都可以用来建站&#xff0c;但云服务器和云虚拟主机又有什么区别呢?二者如何区分开来?…

使用虚拟主机建站适合网站优化吗?

网络的不断发展&#xff0c;不少企业都会使用搜索引擎进行网络营销。为了能够让目标用户在利用搜索引擎搜索时能更容易找到自己的企业网站&#xff0c;不少企业纷纷用自己企业名称或与业务相关的关键词&#xff0c;进行搜索引擎推广&#xff0c;提高网站浏览量&#xff0c;为自…

手把手教你用vuepress搭建自己的网站(1)

虽互不曾谋面,但希望能和您成为笔尖下的朋友以读书,技术,生活为主,偶尔撒点鸡汤不作,不敷衍,意在真诚吐露,用心分享点击左上方,可关注本刊标星公众号&#xff08;ID&#xff1a;itclanCoder&#xff09;如果不知道如何操作点击这里,标星不迷路(https://coder.itclan.cn/)前言如…

手把手教你用vuepress搭建自己的网站(2)

虽互不曾谋面,但希望能和您成为笔尖下的朋友以读书,技术,生活为主,偶尔撒点鸡汤不作,不敷衍,意在真诚吐露,用心分享点击左上方,可关注本刊标星公众号&#xff08;ID&#xff1a;itclanCoder&#xff09;如果不知道如何操作点击这里,标星不迷路页面具体内容配置 基本配置要让你的…

手把手教你用vuepress搭建自己的网站(3)

虽互不曾谋面,但希望能和您成为笔尖下的朋友以读书,技术,生活为主,偶尔撒点鸡汤不作,不敷衍,意在真诚吐露,用心分享点击左上方,可关注本刊标星公众号&#xff08;ID&#xff1a;itclanCoder&#xff09;如果不知道如何操作点击这里,标星不迷路配置插件 有时候,我们想让我们的网…