java抓取网页数据_Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取

news/2024/5/20 14:52:30/文章来源:https://blog.csdn.net/weixin_39888082/article/details/110741632

c463dfc830762437cabd6cb28abb9797.png

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

首先打开Boss直聘网站:

ec287721e9886a035df11494409c0dbc.png

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

3029262e82b8712afa6f868835986e2c.png

然后我们可以看到一个列表,和Go语言相关的各种招聘职位,还可以不停的下一页。。

那我们现在就来爬取这些数据:我们比较关心这里的职位名称,薪资待遇,工作地点,对于工作经验的要求,学历的要求,公司名称,公司类型,公司发展阶段,公司规模等等。。

一、分析页面

我们通过分析页面的结构发现,页面的职位列表,其实都位于一个ul中的li里,每个页面有30个职位,所以有30个li标签:

f0ce2077893a9dcb7555b793871df1db.png

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

9d0ad13db9690d506f842751d91a1de0.png

接下来我们就可以通过代码来爬取这些数据了,首先我们要确定要爬取的第一个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开源协议,于是毫不犹豫的拿来用了。

0c06ecb04fe09cdd3b1bd5cc9ba12818.png

goquery的使用还是比较简单,按照文档说明一步一步来就可以了:

首先:需要安装

localhost:~ ruby$ go get github.com/PuerkitoBio/goquery

其次:就是去看看goquery的API,先了解一下常用的方法:

https://godoc.org/github.com/PuerkitoBio/goquery

76c1a7f39f9c569a51374eaad031e9a9.png

48e11a71e663415119edde3234023b48.png

然后就可以开始写代码了:

打开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:

6c9c0ce2974a7d3f208dc44edcf39c95.png

三、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文件中。

178d2a500f67cb51ad497fccc3834bdc.png

共耗时12s,同样也是减掉9s的睡眠时间,耗时3s。

四、Java语言实现

Java的爬虫,我们可以通过Jsoup库来辅助我们实现Java语言的编程实现)。

先创建Java工程,然后下载Jsoup.jar源码库并添加到Java工程中的libs中,并添加成为library。

接着创建Item类,因为Java是面向对象的语言,所以我们先创建一个类,用于封装下载后的数据:

package 

然后我们创建一个带main()的java文件,来编写爬虫的代码:

package 

因为我们对数据没有什么处理,所以边封装就边打印查看了。

fa1c1501b683cd1b55ab8861d1ab2642.png

这个速度还是有点意思的。。

五、对比

从代码量上可以看得出来Go语言是最少的,尤其的简洁。。

从运行速度上可以看出来Go语言是执行最快的,耗时最短。。

然后每个语言也都有着不同的优缺点,所以也有着各自的发展领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_712890.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的网站被黑了,关键词被劫持,总结一下是怎么解决的。

1、发现被黑,网站被黑的症状 两年前自己用wordpress搭了一个网站,平时没事写写文章玩玩。但是前些日子,突然发现网站的流量突然变小,site了一下百度收录,发现出了大问题,网站被黑了。大多数百度抓取收录的页…

一个大图切成几个小图加载速度更快_谷歌SEO页面速度的重要性

什么是页面速度?页面速度是指网页加载所需的时间。一个页面的加载速度是由几个不同的因素决定的,包括网站的服务器、页面文件大小和图片压缩。也就是说,"页面速度 "并不像 "网页速度 "那么重要。"页面速度 "并…

大学计算机思维导图_3款免费在线思维导图网站,你一定要收藏一个!

1:迅捷画图https://www.liuchengtu.com/迅捷画图是一个专业的思维导图、流程图制作网站。支持在线创作流程图、思维导图、组织结构、ER图、网络拓扑图、UML图等等。接下来说说特色:l 支持导出多种格式,如JPG、PNG、PDF文件、txt文本等格式l 提…

python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频

01前言最近因为 Zigma 帮我写了个推广 Catcher 小程序软文的原因,答应了他帮他爬了一个盗版音频网站的整套 《李淼谈奇案》 。在制作爬虫脚本的过程中,也是遇到了一些有趣的问题,所以特此写了这篇 Blog 用于记录脚本的整一个实现与问题解决。…

java web 项目伪静态_【Java Web】使用URLRewrite实现网站伪静态

大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp、*.php页面。但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态——就是将*.jsp、*.php这种动态URL伪装成静态的HTML页面。…

网站html静态化 教程,新云CMS网站内容管理系统生成HTML静态化教程

网站静态化一直是SEO重点关注对象。静态化有好有坏,最大的好处是收录迅速,坏处是纯静态的HTML页面难以维护,特别是对于大型的网站。本文将介绍如何将新云CMS网站管理系统静态化。html本文以新云CMS 3.0为例。动画1.进入后台控制面板&#xff…

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...

休息了两天,还是决定把这个尾巴给收了。本篇是最后一篇,也算是草草收尾吧。今天要加上表情功能和群聊。基本上就差不多了,其他功能,读者可以自行扩展或者优化。至于我写的代码方面,自己也没去重构。好的,我…

苹果cms mysql 什么版本_分享如何使用阿里云ECS快速搭建CMS网站

想建网站又不会编程的小伙伴有福啦,本期推荐一些开源的cms建站程序,不需要写后端的任何逻辑代码,轻轻松松就可以建立自己的网站了,当然,要想网站有自己的个性,模版还是需要自己写的,只需要会简单…

关于大型网站技术演进的思考(一)--存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通…

动易html在线编辑器 漏洞,动易系统解决IE8网站后台编辑器无效问题

微软的IE8正式版已于2009年3月20日正式发布了,也有不少的动易用户升级了自己的浏览器,但在升级后都发现动易的后台编辑器无法使用了,症状就是点击任何功能图标都没有弹出设置窗口,经过搜索了一下,终于找到了解决IE8下无…

seo 伪原创_seo文章优化(怎么样做好伪原创文章)

在seo网站优化行业中有很大一部分的站点都是以做内容为主,做内容的重点就是写文章,因为很多在搜索引擎中的排名都是靠文章的,那么我们就要着重做好文章,目前还是有很大一部分在做文章的步骤中的问题很大,就是因为没有掌…

apache 网站转nginx_堡塔网站加速宝塔面板网站加速安装设置使用教程

堡塔网站加速是宝塔面板为用户开发的一款网站加速插件,基于页面缓存的网站加速插件,支持常见的众多建站程序加速。其原理是在http协议层缓存动态页面,对实时信息及已登录的会话跳出缓存,此技术主要针对匿名访问的用户进行加速响应…

java音乐网站源码_Vue + SpringBoot + MyBatis 音乐网站

一、前言这里对音乐网站这个项目的开发流程做一下描述,我觉得了解了具体实现的来龙去脉,上手自己做就容易得多了,要知道数据是怎么从数据库一步步跑到前端页面的,当知道了整个的流程再去处理中间的细节,具体实现的细节…

网站导航颜色停留_提高网站流量的方法有哪些?

在做网站SEO推广的时候,网站的访问量是十分重要的一个因素,不仅仅是对网站,对搜索引擎来说也是评价网站级别重要的一个参考因素。那么,提升网站流量的方法有哪些?接下来蜘蛛池博客小编就跟大家分享下提升网站流量的方法…

网站能ping通 但是打不开_SEO网站建设的三要素:域名、空间、网站程序

域名的选择:好域名和短域名对权重影响:好的域名更容易让用户记住你,提高用户回头率。域名的长短影响对SEO没有任何影响,只是短的域名更容易被人记住。另外市面上出现了很多的中文域名,不建议使用中文域名,因…

在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程

【赛迪网讯】4月16日消息,近日,新型在线计算教育平台计蒜客进行了重大改版,网站从底层架构到课程内容都进行了大幅调整。计蒜客新版除了服务速度和稳定性大幅提升外,还对用户的学习体验进行了优化;同时,计蒜…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站 网站…

在你的网站中使用 AdSense广告

下面介绍了如何使用Google的AdSense来为你的网站设置广告。基本内容包括: 创建一个AdSense账号,你必须18岁以上,有一个Google账号以及地址 你的网站必须已经被激活,并且你的网站内容必须符合AdSense政策 创建响应式布局广告单元&a…

java开发社交网站_仿知乎问答社交平台网站

zhihu仿知乎问答社交平台简介这是一个仿知乎的问答社交平台网站,界面与基本功能均仿照知乎。目前实现包括注册,提问,回答,点赞,关注,私信等功能。技术选型后端核心框架:Spring Framework 4.2.5视…

2345浏览器网址_清理流氓网站2345.com劫持浏览器

流氓网站http://2345.com劫持浏览器,把该流氓逐出电脑本人才会心情舒畅!工具/原料电脑方法/步骤1进入电脑的安全模式。2删除下图中所示的“2281733”文件夹。2345流氓软件储存于“2281733”文件夹中,删了该文件夹就相当于删了该流氓软件。3借…