基于SpringBoot框架Wbe Magic爬虫框架爬取招聘信息项目(1)
涉及的技术点:SpringBoot框架、Web Magic爬⾍框架、MySQL、mybatis。
使用语言:Java。
使用工具:idea。
本篇文章主要讲解搭建项目 以及 如何将页面数据输出打印到idea后台上。暂不涉及数据库。(下篇文章涉及到会继续更新…)
目录
1、创建项目
2、maven中导入依赖pom.xml
3、修改启动类名称
4、创建一个spider包,创建爬虫信息类SXSProcessor.java
5、给定Controller层一个类,来触发爬取页面的启动
6、在Spider中点击按钮启动项目,在浏览器中输入localhost:8080/spider,回车运行,页面出现success字符串,说明已启动爬取页面,返回idea中查看打印台上是否有响应的数据。
1、创建项目
2、maven中导入依赖pom.xml
首先引入依赖,parent,里面包含了大量的默认配置,大大简化了开发
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version></parent>
<dependencies>中引入需要的依赖 :
<!---springboot依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!-- webmagic爬虫依赖 --><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.3</version></dependency><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-extension</artifactId><version>0.7.3</version></dependency>
3、修改启动类名称
将启动类名修改为SpiderApplication,里面的具体信息如下:
@SpringBootApplication
public class SpiderApplication {public static void main(String[] args) {SpringApplication.run(SpiderApplication.class, args);System.out.println("爬虫项目");}
}
4、创建一个spider包,创建爬虫信息类SXSProcessor.java
这个类需要实现PageProcessor接口,实现其中的两个方法,分别是
public void process(Page page) {}//处理爬虫页面的所有信息,解析html的业务代码都放在这个方法中public Site getSite() {return site;}//返回出一个实例对象
以爬取某实习网站中得数据为例。
分析一下整个页面,现在需要将这些招聘信息的主要内容筛(岗位名称,薪资情况等)选出来打印到控制台上。需要你会分析html页面,知道如何定位页面元素
直接贴出代码,注解都比较详细,需要的可以仔细研究研究。
/*** 爬取某实习网页页面*/@Service("sxsProcessor")
public class SXSProcessor implements PageProcessor {//给定要爬取的网址 这块审核过不了 static String URL = "";//获取site实例 setRetryTimes(3)重试3次 setCharset("utf-8")字符集编码为utf-8 setSleepTime(new Random().nextInt(20) * 100)页面等待,时间随机在0-2s之内private Site site = Site.me().setRetryTimes(3).setCharset("utf-8").setSleepTime(new Random().nextInt(20) * 100);//输出URLpublic static String getURL() {return URL;}@Override//爬取页面解析位置public void process(Page page) {//解析当前所在页面String url = page.getUrl().get();Integer num = Integer.valueOf(url.substring(url.indexOf("page=") + 5, url.indexOf("&")));System.out.println("当前页数:" + num);//获取页面的全部代码,开始调试时可以打开这块,查看能否爬取到页面的代码// String s1 = page.getHtml().get();//System.out.println(s1);//爬取招聘页面解析//根据需要提取的html页面分析,得到想要的信息的xpath(这里需要你会在浏览器页面中会定位元素)//这个list中存储的就是每个招聘信息的内容,然后遍历信息,在这些信息中找自己想要的数据,得到xpath,获取到信息List<Selectable> node = page.getHtml().xpath("//div[@class=\"intern-wrap intern-item\"]").nodes();for (Selectable s : node) {//解析薪资String money = s.xpath("//div[@class=\"f-l intern-detail__job\"]/p/span/text()").get().trim();System.out.println(money);//获取公司地点String address = s.xpath("//div[@class=\"f-l intern-detail__job\"]/p[2]/span/text()").get();System.out.println(address);//获取公司名String companyName = s.xpath("//div[@class=\"f-r intern-detail__company\"]/p/a/text()").get();System.out.println(companyName);System.out.println();System.out.println();}//System.out.println("URL:" + url);//停止爬虫 假设页面大于5页,就停止爬取if (num > 5) {return;}//翻下一页面,改变url中page的值num = num + 1;url = url.replace(url.substring(url.indexOf("page="), url.indexOf("&")),"page=" + String.valueOf(num));//翻页page.addTargetRequest(url);}@Override//获取实例public Site getSite() {return site;}
}
5、给定Controller层一个类,来触发爬取页面的启动
@Controller
public class SpiderController {@Autowired
private SXSProcessor sxsProcessor;@RequestMapping("/spider")@ResponseBodypublic String spider(){Spider.create(sxsProcessor).addUrl(SXSProcessor.getURL()).run();System.out.println("开始爬取工作信息啦");return "sucess";}
}
6、在Spider中点击按钮启动项目,在浏览器中输入localhost:8080/spider,回车运行,页面出现success字符串,说明已启动爬取页面,返回idea中查看打印台上是否有响应的数据。
idea中控制台显示结果:
基于SpringBoot框架Wbe Magic爬虫框架爬取招聘信息项目(1)相关推荐
- python爬取新浪微博数据中心_Python爬虫框架Scrapy实战之批量抓取招聘信息
网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站网页的url地址,所以,要有个技巧去抓取网站的所有html页面.Scrapy是纯Python实现的爬虫框架,用户 ...
- Python爬虫之爬取车票信息
Python爬虫之爬取所有火车站的站台信息 前面我写过一篇关于火车站站台的查询,这篇基于站台的查询写火车车票余额信息查询-- 一.信息获取: 获取请求地址: 在浏览器菜单中找到Web开发者模式,打开网 ...
- idea爬虫爬取招聘信息,大数据
某工厂来学校培训大数据爬虫,先提供个网页 <%@ page language="java" import="java.util.*" pageEncodi ...
- (78)--用框架爬取招聘信息
(78)--用scrapy框架简单爬取赶集网信息 # main.py from scrapy import cmdlinecmdline.execute('scrapy crawl spider_ga ...
- 爬虫简单爬取网站信息
首先打开想要爬取的网站,找到想要爬取的内容 开始编写代码: 引入需要的模块 import os #引入系统模块 from bs4 import BeautifulSoup # 网页解析,获取数据 im ...
- python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...
爬虫系列: 当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格.开放时间.用户的评论等. 本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息. 1.项目目标 获取网站的景 ...
- 利用java的JSoup爬虫技术爬取网页信息
简单讲解java的Jsoup爬虫技术来爬取网页的数据,简单来讲就是解释网页,一般学过xml的人都很容易理解. 第一步:我们要爬取网页的静态内容必须要了解网页的源码,也就是div之类的标签,因为我们是靠 ...
- 网络爬虫:爬取段子信息
1.说明:利用requests和正则表达式方法,爬取糗事百科网中"文字"专题的段子信息,并把爬取的数据存储在本地文件中. 2.爬虫分析: (1)网址信息及规律: https://w ...
- python3小项目——爬取招聘信息(智联招聘)
2017年6月,花了大概一周的时间学习了以下内容,并基于此写了一个小项目.这里对其进行总结,说明其中遇到的问题和解决方案以及下一步计划. 学习的内容和网址: 斯巴达网站 斯巴达视频 python零基础 ...
最新文章
- Redis实现消息队列
- python编程标准_python编程规范
- office2013软件安装资料及教程
- 怎么用计算机截图快捷键,电脑怎么截图截屏 电脑截图的快捷键是什么
- 导致oracle 控制文件坏,异常断电导致ORACLE控制文件等受到破坏的处理
- 【招聘(北京)】北森测评招聘 .NET 架构师、高级工程师
- bzoj 3668 数位DP
- 有python基础学java_Python基础学习篇
- AJAX扩展-POST传递参数并跳转页面
- mysql sql model设置_操作mysql model
- 27.3. Directory and File System Related
- matlab方程组函数画图,MATLAB学习1 之画图函数
- Windows源码编译运行pgAdmin4
- “VBE6EXT.OLB不能被加载”解决方法
- 金山Wps珠海实习杂记(一)
- day19正则表达式作业
- 功不唐捐—— 程序员职场第一课 后记
- 《软件方法》第二章 自测题
- 摩斯密码Java/Python实现
- 如何快速、科学的配置GO语言编译Android环境