从爬虫开始找工作

  • 内容
  • 评论
  • 相关

前言

看看时间也快10月了,一个offer都没有,这样不行啊,天天看海投网上宣讲会信息,可是在2300+条信息里面找出符合自己的,想想就觉得崩溃,所以有了这个爬虫。也算的上是具有"程序猿特色"的求职之路。

目标分析

首先看看目标网址:海投网武汉地区宣讲会

目标分析:这里我使用的是火狐浏览器自带的调试工具,当然你也可以使用Firebug用来方便查看目标源码。如下图

xjh01

我们可以看到,整个宣讲会是一个<table></table>,其中<tbody>下的每一个<tr>标签都包裹着一条宣讲会信息。他下面的<td>标签则包含着我们需要的内容。如下图。

xjh02

分析结果:只需要获取页面上<table></table>下的<tr>中的<td>标签中的内容,就是我们需要的信息。

获取到所有页面

获取下一页和上一页

我们先随意切换上下页,第二页的url为:http://xjh.haitou.cc/wh/page-2 ,第3页的url为:http://xjh.haitou.cc/wh/page-3 ,可以很清楚的看到,页码的切换其实就是page-页码即可。

获取到最后一页

经过上面的分析我们可以知道了怎么获取到上下页,下面我来介绍下如何获取到最后一页。

首先看看非最后一页的下一页按钮

xjh03

再来看看最后一页的下一页按钮

04

可以看到,当页面中存在li元素 class为next的时候,说明有下一页,当到达最后一页以后,li class为disable。这样我们就可以知道如何不停获取下一页了。

当我们获取到所有的宣讲会信息以后就可以直接获取这个宣讲会详细的信息了,然后在宣讲会中判断是否存在自己希望出现的字符即可。

实际编码

整个编码总的来说分为两部分,一部分为获取宣讲会信息,这一部分在上面以及介绍的很清楚了,另一部分则是访问所有获取到的宣讲会信息,判断处理,保存等。

在程序中维护一个任务队列,开启一个辅助线程获取宣讲会信息,将封装好的宣讲会信息提交到任务队列,然后使用工作线程处理任务队列中的任务。这里为了简便,直接使用了线程池。解析html使用了Jsoup库,关于Jsoup的用法请查看:Jsoup中文帮助文档

首先将宣讲会信息封装起来。

然后式辅助线程,主要用于解析主界面

工作线程

最后附上一张效果图

05

完整源码查看:https://github.com/CB2Git/Crawler_xjh

评论

3条评论
  1. Gravatar 头像

    _

    吊了吊了。word 哥

  2. Gravatar 头像

    Alias

    由于本篇文章不停的被恶意评论,所以关闭本篇博客的评论。