看的小匠实战课写的,嘿嘿。跟着敲一遍代码后总结一下。

1.selenium定义(百度的)

Selenium(浏览器自动化测试框架)

Selenium  是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

2.为什么叫万能爬虫?

很多网站防抓取做的越来越好,selenium模拟人的操作,面对浏览器。

3.步骤

①下载chrome的webdriver 地址:http://nmp.taobao.org/mirrors/chromedriver

②创建maven项目,把dependency放在pom.xml文件里可以自动解析下载jar包,main里的java写代码,resources放wendriver。

③涉及到xpath的使用

pom.xml里加:
<dependencies><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.141.59</version></dependency></dependencies>
java里写类:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;import java.util.List;public class LagouSpider {public static void main(String[] args){//设置webdriver路径System.setProperty("webdriver.chrome.driver",LagouSpider.class.getClassLoader().getResource("chromedriver.exe").getPath());//创建webdriverWebDriver webDriver=new ChromeDriver();  /*ctrl+h查看子类*///跳转页面webDriver.get("https://www.lagou.com/zhaopin/Java/?labelWords=label");//把红包点了WebElement btnRedEnvelope =webDriver.findElement(By.xpath("//div[@class='body-box']//div[contains(text(),'给也不要')]"));btnRedEnvelope.click();//点地理位置WebElement placeElement = webDriver.findElement(By.xpath("//div[@class='current-handle-position']//span[contains(text(),'工作地点')]"));  //ctrl+alt+v 快速抽取变量WebElement optPlaceElement = placeElement.findElement(By.xpath("//div[@class='other-hot-city']//a[contains(text(),'上海')]"));//ctrl+F6重定义变量名字optPlaceElement.click();//通过xpath选中元素clickOption(webDriver, "工作经验", "应届毕业生");clickOption(webDriver, "学历要求", "本科");/*ctrl+shift+m 抽取方法*//*ctrl+alt+n Inline变量(变量引回去)*//*ctrl+d 快速复制行*///解析页面元素extractJobsByPagination(webDriver);}private static void extractJobsByPagination(WebDriver webDriver) {List<WebElement> jobElements = webDriver.findElements(By.className("con_list_item"));for (WebElement jobElement : jobElements) {WebElement moneyElement = jobElement.findElement(By.className("position")).findElement(By.className("money"));String companyName = jobElement.findElement(By.className("company_name")).getText();String industry = jobElement.findElement(By.className("industry")).getText();String advantage = jobElement.findElement(By.className("li_b_r")).getText();System.out.println("公司:"+companyName+"薪资:"+moneyElement.getText()+"公司介绍:"+industry+"公司优势:"+advantage);}WebElement nextPageBtn = webDriver.findElement(By.className("pager_next"));if(!nextPageBtn.getAttribute("class").contains("pager_next_disabled")){ //因为是类,所以getAttributenextPageBtn.click();try {Thread.sleep(1000L);} catch (InterruptedException e) {e.printStackTrace();}extractJobsByPagination(webDriver);//不是最后一页就调用}}private static void clickOption(WebDriver webDriver, String choseTitle, String optionTitle) {WebElement chosenElement = webDriver.findElement(By.xpath("//li[@class='multi-chosen']//span[contains(text(),'" + choseTitle + "')]"));  //ctrl+alt+v 快速抽取变量WebElement optionElement = chosenElement.findElement(By.xpath("../a[contains(text(),'" + optionTitle + "')]"));//ctrl+F6重定义变量名字optionElement.click();}
}

几个问题:

1.我敲代码的时候打开拉勾网会弹出一个红包,要点击下去,我仿照语法做成功了。

2.抽取方法时快捷键

3.路径问题,有时候路径是前一个小标签下的另一个标签,采用../好像不太好用。不如直接寻找//。(这点不太懂)

4.打印问题,我想打印出表格,没成功,最后做的是名称: 形式。

java万能爬虫爬取拉勾网相关推荐

  1. java爬虫拉勾网_[Java教程]node.js爬虫爬取拉勾网职位信息

    [Java教程]node.js爬虫爬取拉勾网职位信息 0 2017-03-14 00:00:21 简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳 ...

  2. 用Java做爬虫爬取王者荣耀的英雄头像

    大家好,今天我和大家分享一下用Java做爬虫爬取王者荣耀的英雄头像. 首先我们需要王者荣耀的网址,然后获取连接,通过IO读取网页的源代码,用正则表达式筛选我们需要的代码,在每个筛选对象(图片的地址)前 ...

  3. python爬虫: 爬取拉勾网职位并分析

    文章目录 0. 前言 1. 用到的软件包 2. 解析网页 3. 数据清洗 4. 词云 5. 描述统计 6. 实证统计 7. 完整代码 7.1 爬虫部分的代码 7.2 数据分析部分的代码 0. 前言 本 ...

  4. 用 Java 实现爬虫 (爬取本地html中的人物信息并可视化人物关系)

    目录 爬虫简介 常用的工具框架 selenium + Jsoup Jsoup介绍 Jsoup的主要功能如下: HTML 相关知识 通过Jsoup元素获取 案例 爬取本地html中的角色信息 HtmlP ...

  5. java实现爬虫爬取京东手机页面

    java实现爬虫利用httpclient获取页面数据,再用jsoup解析获取数据,在此页面的分析不作过多赘述,读者自行分析. 1.首页输入手机,观察url参数,将其中"&page=& ...

  6. 2.简单爬虫————爬取拉勾网招聘信息(一)

    该文章仅供学习,如有错误,欢迎指出 1.开始创建一个项目 mkdir lagou 2.进入到文件夹下创建python3的虚拟环境 pipenv install scrapy 3.进入pipenv 下使 ...

  7. python爬虫爬取拉勾网职业信息

    一.前言 最近想做一份关于拉勾网数据分析类职业的报告,便顺手写了个简单的爬虫,记录分享如下. 二.思路整理 1.首先我们打开拉勾网,并搜索""数据分析"",显示 ...

  8. 使用java网络爬虫爬取BOSS直聘岗位信息

    一.目的 得到招聘网站中自己想要的相关数据 对HTML进行清洗,保留想要的数据并导出到Excel 二.java实现过程 导入相关架包 <dependency><groupId> ...

  9. 如何用python做考勤_【python爬虫教程 考勤】如何用Python实现一只小爬虫,爬取拉勾网...

    python爬虫入门教程全集 千锋官网上有一些是零基础入门学习的很不错 如何用Python实现一只小爬虫,爬取拉勾网 1.首先打开拉,并搜索"java",显示出职位信息就是我们的目 ...

最新文章

  1. math python 向上取整_Python的数值基本运算和其它数学运算方法
  2. JAVA中equals空_Java中为什么查询空字符串跟判断是否为null的时候可以不用equals?...(亲测)
  3. poj1284 Primitive Roots
  4. 全自动洗衣机单片机c语言程序,全自动洗衣机单片机程序
  5. 电容式传感器位移性能试验报告_一文读懂什么是接近传感器?
  6. 全球最伟大50名商业领袖,任正非和马云未入选,中国只有一人上榜
  7. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之一
  8. 360补丁打上以后漏洞依然存在?
  9. 用计算机编码原理解释,编码原理
  10. 刷机“变砖”,黑屏,自己通过以下方法再次让手机死而复生
  11. 最强数据库工具——IDEA
  12. 家庭mesh网络与IPTV的搭建
  13. 物联网工程专业考研方向
  14. 测试报告包含哪些内容?
  15. 纪念第一次2019河南省第十二届ACM大赛之旅
  16. python语言的特点包括哪些_Python的特点有哪些特点
  17. C++中在堆区用new开辟空间
  18. c++ 移动桌面图标
  19. Beam Search集束搜索
  20. 神经网络 深度神经网络,深度神经网络基本原理

热门文章

  1. 迅雷磁盘缓存设置过高会影响其它网络应用软件的速度
  2. Win10问题篇:解决鼠标玩游戏单击(左击/右击)失灵问题。
  3. python利器官网-python利器app
  4. 4 书写规则
  5. c++/c语言 杨辉三角(详细讲解)。
  6. java的正确学习姿势
  7. 完美解决select2插件提示信息是英文的问题
  8. Grid控件 设置格子背景颜色
  9. 分享 | 日置3561电池测试仪调零/自校准详解教程
  10. 删除2345网页导航