java抓取网页数据_Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取
我们分别通过Golang、Python、Java三门语言,分别实现对Boss直聘网站的招聘数据进行爬取。
首先打开Boss直聘网站:
然后我们在职位类型中输入Go或者Golang关键字:
然后我们可以看到一个列表,和Go语言相关的各种招聘职位,还可以不停的下一页。。
那我们现在就来爬取这些数据:我们比较关心这里的职位名称,薪资待遇,工作地点,对于工作经验的要求,学历的要求,公司名称,公司类型,公司发展阶段,公司规模等等。。
一、分析页面
我们通过分析页面的结构发现,页面的职位列表,其实都位于一个ul中的li里,每个页面有30个职位,所以有30个li标签:
打开这个li标签后,里面是div标签嵌套,包括了招聘信息和公司信息:
接下来我们就可以通过代码来爬取这些数据了,首先我们要确定要爬取的第一个url:
https://www.zhipin.com/c101010100/?query=Go&page=1
一共有10页数据,分别通过page=1、2、3。。。来实现,
所以接下来要爬取的url:
https://www.zhipin.com/c101010100/?query=Go&page=2
https://www.zhipin.com/c101010100/?query=Go&page=3
。。。
https://www.zhipin.com/c101010100/?query=Go&page=10
爬取到的数据,我们也不需要处理,打印输出即可。。因为我们只是想看一下几门语言爬取数据在实现上有什么不同。。
好了,现在让我们来开开心心的撸代码吧。。
二、Golang语言实现
使用Go语言来爬取这个页面,github里搜了下,发现goquery这个爬虫包用的人还挺多的,7000多个star,而且是BSD开源协议,于是毫不犹豫的拿来用了。
goquery的使用还是比较简单,按照文档说明一步一步来就可以了:
首先:需要安装
localhost:~ ruby$ go get github.com/PuerkitoBio/goquery
其次:就是去看看goquery的API,先了解一下常用的方法:
https://godoc.org/github.com/PuerkitoBio/goquery
然后就可以开始写代码了:
打开Goland,新建一个go文件:
package
一共也就这些代码,加上注释78行。
然后可以运行:(注:由于执行结果过长,为增加可阅读性部分执行结果已经删除处理)
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/ruby/go #gosetup
/usr/local/go/bin/go build -i -o /private/var/folders/kt/nlhsnpgn6lgd_q16f8j83sbh0000gn/T/___go_build_boss_go /Users/ruby/go/src/boss/boss.go #gosetup
/private/var/folders/kt/nlhsnpgn6lgd_q16f8j83sbh0000gn/T/___go_build_boss_go #gosetup
============== 千锋教育Go语言开发教学部 职位信息分析 ================
第 0 页的数据:
职位序号:第1个职位
职位名称:Golang
职位薪酬:25k-50k
工作地点:北京
职位所需工作经历:5-10年
学历要求:本科
公司名称:京东集团
公司类型:电子商务
公司发展阶段:已上市
公司规模:10000人以上
================================================================职位序号:第2个职位
职位名称:Golang
职位薪酬:20k-35k
工作地点:北京 朝阳区 亮马桥
职位所需工作经历:3-5年
学历要求:本科
公司名称:平安科技
公司类型:互联网
公司发展阶段:不需要融资
公司规模:1000-9999人
================================================================职位序号:第3个职位
职位名称:Golang
职位薪酬:20k-30k
工作地点:北京 海淀区 知春路
职位所需工作经历:3-5年
学历要求:本科
公司名称:腾讯科技(北京)公司
公司类型:移动互联网
公司发展阶段:已上市
公司规模:10000人以上
================================================================职位序号:第4个职位
职位名称:Golang
职位薪酬:20k-40k
工作地点:北京 海淀区 中关村
职位所需工作经历:3-5年
学历要求:本科
公司名称:旷视科技
公司类型:移动互联网
公司发展阶段:C轮
公司规模:1000-9999人
================================================================职位序号:第5个职位
职位名称:Golang
职位薪酬:20k-40k
工作地点:北京 海淀区 上地
职位所需工作经历:3-5年
学历要求:本科
公司名称:Aibee
公司类型:互联网
公司发展阶段:A轮
公司规模:100-499人
================================================================
.
省略
.
注:由于执行结果过长,为增加可阅读性部分执行结果已经删除处理
.
省略
.
================================================================
职位序号:第25个职位
职位名称:Golang
职位薪酬:20k-35k
工作地点:北京 海淀区 上地
职位所需工作经历:3-5年
学历要求:本科
公司名称:滴滴出行
公司类型:移动互联网
公司发展阶段:D轮及以上
公司规模:1000-9999人
================================================================职位序号:第26个职位
职位名称:高级软件工程师(Golang)
职位薪酬:30k-50k
工作地点:北京 海淀区 五道口
职位所需工作经历:3-5年
学历要求:学历不限
公司名称:魔门塔科技
公司类型:计算机软件
公司发展阶段:B轮
公司规模:500-999人
================================================================职位序号:第27个职位
职位名称:京东云golang后端开发工程师
职位薪酬:20k-40k
工作地点:北京 朝阳区 小营
职位所需工作经历:5-10年
学历要求:本科
公司名称:京东集团
公司类型:电子商务
公司发展阶段:已上市
公司规模:10000人以上
================================================================职位序号:第28个职位
职位名称:Golang开发工程师
职位薪酬:15k-25k
工作地点:北京 海淀区 航天桥
职位所需工作经历:1-3年
学历要求:本科
公司名称:央视网
公司类型:互联网
公司发展阶段:不需要融资
公司规模:1000-9999人
================================================================职位序号:第29个职位
职位名称:Golang开发工程师
职位薪酬:5k-9k
工作地点:北京 海淀区 大钟寺
职位所需工作经历:1年以内
学历要求:本科
公司名称:卿烨科技
公司类型:互联网
公司发展阶段:A轮
公司规模:100-499人
================================================================职位序号:第30个职位
职位名称:Golang开发工程师
职位薪酬:30k-60k
工作地点:北京 海淀区 万柳
职位所需工作经历:3-5年
学历要求:本科
公司名称:费曼咨询
公司类型:互联网
公司发展阶段:未融资
公司规模:0-20人
================================================================app elapsed: 11.074699684sProcess finished with exit code 0
我们可以看到一共花费了11s的时间,但是我们为了防止boss反爬,在程序中设置了,每隔1s中再爬取下个页面,所以减掉9s,真正的爬数据的时间也就2s:
三、Python语言实现
python在爬虫方面还是比较强大的,我选了一个最时髦的框架:scrapy
这个框架虽然说功能很强大,但是用起来还稍微有点麻烦的,不说别的,创建项目就得用终端的scrapy命令创建,而不是IDE直接创建。
所以打开终端,进入python的workspace,输入以下命令:
localhost:~ ruby$ scrapy startproject bossspider
然后通过Pycharm打开这个项目:
先编写items.py文件,就是我们要爬取的数据,需要先在此处定义,然后每一条数据就是一个item:
# -*- coding: utf-8 -*-
然后我们打开spiders目录:新建一个py文件:bossspider.py,这里写爬取数据的代码:
# -*- coding: utf-8 -*-
然后修改setting.py文件,设置请求头等等:
# -*- coding: utf-8 -*-
为了能够在爬取数据的时候,统计程序耗时,我们还可以修改scrapy的包文件:corestats.py
def
然后运行一下程序,打开终端,输入以下命令:
hanru-3:bossspider ruby$ scrapy crawl bossspider
或者:
hanru-3:bossspider ruby$ scrapy crawl bossspider -o boss.json
表示把爬取的数据导出到boss.json文件中。
共耗时12s,同样也是减掉9s的睡眠时间,耗时3s。
四、Java语言实现
Java的爬虫,我们可以通过Jsoup库来辅助我们实现Java语言的编程实现)。
先创建Java工程,然后下载Jsoup.jar源码库并添加到Java工程中的libs中,并添加成为library。
接着创建Item类,因为Java是面向对象的语言,所以我们先创建一个类,用于封装下载后的数据:
package
然后我们创建一个带main()的java文件,来编写爬虫的代码:
package
因为我们对数据没有什么处理,所以边封装就边打印查看了。
这个速度还是有点意思的。。
五、对比
从代码量上可以看得出来Go语言是最少的,尤其的简洁。。
从运行速度上可以看出来Go语言是执行最快的,耗时最短。。
然后每个语言也都有着不同的优缺点,所以也有着各自的发展领域。
java抓取网页数据_Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取相关推荐
- BOSS直聘网站数据分析岗位信息爬取
Boss直聘网站已改用ajax了,可以改用selenium库爬取,下面爬虫已过时,但数据分析方法还是可以用的,数据分析全部代码都已给出. 语言:Python3 目录 一.信息爬取 二.数据分析 2.1 ...
- 使用python爬取BOSS直聘岗位数据并做可视化(Boss直聘对网页做了一些修改,现在的代码已经不能用了)
使用python爬取BOSS直聘岗位数据并做可视化 结果展示 首页 岗位信息 岗位详情 薪资表 学历需求 公司排名 岗位关键词 福利关键词 代码展示 爬虫代码 一.导入库 二.爬取数据 1.爬取数据代 ...
- Boss直聘职位信息爬取+分析
BOSS直聘职位信息爬取分析 先上结果,本次抓取了732条职位的信息入库: 代码实现: import requests import json from lxml import etree from ...
- 写一个爬虫爬取boss直聘网站
好的,我可以为您简要介绍如何编写一个爬虫来爬取 BOSS 直聘网站. 首先,您需要准备好以下几个东西: 安装 Python,并使用 pip 安装爬虫所需的库,如 requests 和 Beautifu ...
- scrapy框架爬取Boss直聘,数据存入mysql
自从上次用了scrapy爬取豆瓣电影后,发现scrapy除了入门相对request较难外,各方面都挺好的,速度很快,还有各个功能模块,以及django类似的各种中间件组成一个完善的系统框架,需要一点一 ...
- Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息
Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...
- Python爬虫:爬取“Boss直聘”招聘数据
hello 大家好~ 又是元气满满的一天呢~ 既然元气满满,要不要搞点事情,譬如说,爬取"Boss直聘"(此处模仿歪果仁讲话更带感)的招聘数据~ 说走咱就走,说干咱就干~" ...
- xhr请求python_python爬取boss直聘职位数据,并保存到本地
基本环境配置 1.requests,用于模拟http/https请求 安装: pip install requests 2.beautifulsoup4,用于解析网页,得出我们想要的内容. 安装: p ...
- Python3 + xpath + excel 实现对boss直聘网的爬取
一.项目简介 1.内容:抓取boss直聘网上广州地区的 python 相关工作的招聘信息,并且将招聘信息循环保存在excel表中 2.目标网站:https://www.zhipin.com/c1012 ...
最新文章
- Linux设置开机启动
- SAP RETAIL MM42维护的采购价格,等同于ME11ME12的效果
- dhcp配置(个人)
- 无向网络节点重要性指标
- 【NOIP模拟】彩色树【树形dp】【树链剖分性质】【复杂度分析】
- 数学史思维导图_【学科活动】思维导图展风采,数学文化提素养——庆云县第四中学(北校区)四年级数学组活动小记...
- 蓝桥杯c语言a组省赛试题及答案,2016-蓝桥杯-省赛-C语言大学A组全部真题.doc
- Qt工作笔记-UDP多线程数据处理及发送(简单实例)
- mesos INSTALL
- 构建一个简单的卷积神经网络,使用DRL框架tianshou匹配DQN算法
- Docker教程:dokcer的配置和命令
- 轻松实现微信、QQ防撤回
- 使用Jacob将Excel转换PDF问题总结
- 服务器安装操作系统失败,安装程序配置服务器失败怎么办
- Minecraft 1.16.5模组开发(三十一) 自定义建筑生成(structure) (新)
- 分布式、高并发、高性能场景(抢购、秒杀、抢票、限时竞答)数据一致性解决方案...
- MATLAB灰度图像缩小实验
- 产品读书《用户体验要素》
- l5630鲁大师跑分_鲁大师安卓3D引擎更新,跑分测试精准度再升级
- debian 完全卸载mysql_Debian完全卸载清理MySQL服务器