我们分别通过Golang、Python、Java三门语言,分别实现对Boss直聘网站的招聘数据进行爬取。
首先打开Boss直聘网站:

然后我们在职位类型中输入Go或者Golang关键字:

然后我们可以看到一个列表,和Go语言相关的各种招聘职位,还可以不停的下一页。。
那我们现在就来爬取这些数据:我们比较关心这里的职位名称,薪资待遇,工作地点,对于工作经验的要求,学历的要求,公司名称,公司类型,公司发展阶段,公司规模等等。。
一、分析页面
我们通过分析页面的结构发现,页面的职位列表,其实都位于一个ul中的li里,每个页面有30个职位,所以有30个li标签:

打开这个li标签后,里面是div标签嵌套,包括了招聘信息和公司信息:

接下来我们就可以通过代码来爬取这些数据了,首先我们要确定要爬取的第一个url:
一共有10页数据,分别通过page=1、2、3。。。来实现,
所以接下来要爬取的url:
。。。
爬取到的数据,我们也不需要处理,打印输出即可。。因为我们只是想看一下几门语言爬取数据在实现上有什么不同。。
好了,现在让我们来开开心心的撸代码吧。。
二、Golang语言实现
使用Go语言来爬取这个页面,github里搜了下,发现goquery这个爬虫包用的人还挺多的,7000多个star,而且是BSD开源协议,于是毫不犹豫的拿来用了。

goquery的使用还是比较简单,按照文档说明一步一步来就可以了:
首先:需要安装
其次:就是去看看goquery的API,先了解一下常用的方法:


然后就可以开始写代码了:
打开Goland,新建一个go文件:
一共也就这些代码,加上注释78行。
然后可以运行:(注:由于执行结果过长,为增加可阅读性部分执行结果已经删除处理)
我们可以看到一共花费了11s的时间,但是我们为了防止boss反爬,在程序中设置了,每隔1s中再爬取下个页面,所以减掉9s,真正的爬数据的时间也就2s:

三、Python语言实现
python在爬虫方面还是比较强大的,我选了一个最时髦的框架:scrapy
这个框架虽然说功能很强大,但是用起来还稍微有点麻烦的,不说别的,创建项目就得用终端的scrapy命令创建,而不是IDE直接创建。
所以打开终端,进入python的workspace,输入以下命令:
然后通过Pycharm打开这个项目:
先编写items.py文件,就是我们要爬取的数据,需要先在此处定义,然后每一条数据就是一个item:
然后我们打开spiders目录:新建一个py文件:bossspider.py,这里写爬取数据的代码:
然后修改setting.py文件,设置请求头等等:
为了能够在爬取数据的时候,统计程序耗时,我们还可以修改scrapy的包文件:corestats.py
然后运行一下程序,打开终端,输入以下命令:
或者:
表示把爬取的数据导出到boss.json文件中。

共耗时12s,同样也是减掉9s的睡眠时间,耗时3s。
四、Java语言实现
Java的爬虫,我们可以通过Jsoup库来辅助我们实现Java语言的编程实现)。
先创建Java工程,然后下载Jsoup.jar源码库并添加到Java工程中的libs中,并添加成为library。
接着创建Item类,因为Java是面向对象的语言,所以我们先创建一个类,用于封装下载后的数据:
然后我们创建一个带main()的java文件,来编写爬虫的代码:
因为我们对数据没有什么处理,所以边封装就边打印查看了。

这个速度还是有点意思的。。
五、对比
从代码量上可以看得出来Go语言是最少的,尤其的简洁。。
从运行速度上可以看出来Go语言是执行最快的,耗时最短。。
然后每个语言也都有着不同的优缺点,所以也有着各自的发展领域。