涉及的技术点: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)相关推荐

  1. python爬取新浪微博数据中心_Python爬虫框架Scrapy实战之批量抓取招聘信息

    网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站网页的url地址,所以,要有个技巧去抓取网站的所有html页面.Scrapy是纯Python实现的爬虫框架,用户 ...

  2. Python爬虫之爬取车票信息

    Python爬虫之爬取所有火车站的站台信息 前面我写过一篇关于火车站站台的查询,这篇基于站台的查询写火车车票余额信息查询-- 一.信息获取: 获取请求地址: 在浏览器菜单中找到Web开发者模式,打开网 ...

  3. idea爬虫爬取招聘信息,大数据

    某工厂来学校培训大数据爬虫,先提供个网页 <%@ page language="java" import="java.util.*" pageEncodi ...

  4. (78)--用框架爬取招聘信息

    (78)--用scrapy框架简单爬取赶集网信息 # main.py from scrapy import cmdlinecmdline.execute('scrapy crawl spider_ga ...

  5. 爬虫简单爬取网站信息

    首先打开想要爬取的网站,找到想要爬取的内容 开始编写代码: 引入需要的模块 import os #引入系统模块 from bs4 import BeautifulSoup # 网页解析,获取数据 im ...

  6. python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...

    爬虫系列: 当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格.开放时间.用户的评论等. 本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息. 1.项目目标 获取网站的景 ...

  7. 利用java的JSoup爬虫技术爬取网页信息

    简单讲解java的Jsoup爬虫技术来爬取网页的数据,简单来讲就是解释网页,一般学过xml的人都很容易理解. 第一步:我们要爬取网页的静态内容必须要了解网页的源码,也就是div之类的标签,因为我们是靠 ...

  8. 网络爬虫:爬取段子信息

    1.说明:利用requests和正则表达式方法,爬取糗事百科网中"文字"专题的段子信息,并把爬取的数据存储在本地文件中. 2.爬虫分析: (1)网址信息及规律: https://w ...

  9. python3小项目——爬取招聘信息(智联招聘)

    2017年6月,花了大概一周的时间学习了以下内容,并基于此写了一个小项目.这里对其进行总结,说明其中遇到的问题和解决方案以及下一步计划. 学习的内容和网址: 斯巴达网站 斯巴达视频 python零基础 ...

最新文章

  1. Redis实现消息队列
  2. python编程标准_python编程规范
  3. office2013软件安装资料及教程
  4. 怎么用计算机截图快捷键,电脑怎么截图截屏 电脑截图的快捷键是什么
  5. 导致oracle 控制文件坏,异常断电导致ORACLE控制文件等受到破坏的处理
  6. 【招聘(北京)】北森测评招聘 .NET 架构师、高级工程师
  7. bzoj 3668 数位DP
  8. 有python基础学java_Python基础学习篇
  9. AJAX扩展-POST传递参数并跳转页面
  10. mysql sql model设置_操作mysql model
  11. 27.3. Directory and File System Related
  12. matlab方程组函数画图,MATLAB学习1 之画图函数
  13. Windows源码编译运行pgAdmin4
  14. “VBE6EXT.OLB不能被加载”解决方法
  15. 金山Wps珠海实习杂记(一)
  16. day19正则表达式作业
  17. 功不唐捐—— 程序员职场第一课 后记
  18. 《软件方法》第二章 自测题
  19. 摩斯密码Java/Python实现
  20. 如何快速、科学的配置GO语言编译Android环境

热门文章

  1. C语言/C++学习路线图(2021整理)
  2. 酒鬼漫步详解(python)
  3. 把U盘格式化成NTFS和FAT32有什么不同?
  4. Gxt开发问题集锦《一》
  5. 【Flowable】Flowable流程设计器
  6. ALERT! UUID=xxxxxxxxx does not exist. Dropping to a shell!
  7. ajax在IE10以下浏览器请求不成功问题
  8. miaov-关于this
  9. ChatGLM-6B 中文对话模型复现、调用模块、微调及部署实现(更新中)
  10. Mac如何管理苹果电脑顶部菜单栏图标