真皮沙发这次又来了!在上次的两个爬虫中,笔者探讨了python爬虫的入门以及re模块的运用。而上两次的爬取内容都是笔者闲的蛋疼入门爬虫所选择的连个爬取页面。

今天笔者要来搞事了,这次是搞正事。是的,搞正事。相信很多的同学都有在各大招聘网站上浏览过,各种层出不起的信息,着实让人厌烦。很多人也在着急寻找实习单位为以后找工作打好基础,笔者本着服务于人的态度爬取了一个实习生招聘网站-实习僧,因为笔者在武汉就读,就爬取了100页武汉本地的实习单位信息。通过所得到的数据分析了一下实习生的工资待遇,就笔者目前所得到的结果来看,整体就一个惨字啊!

哇,一个偌大的武汉对待实习生也太差了吧,真的是让人心寒。这里笔者先买个关子,等会和大家一起看分析结果。那么现在我们进入正题,首先我们要将信息爬取下来,这需要一个爬虫框架,这里便不多累述,前两篇都有。而后我们将爬取得到的数据存入数据库,这里用到的是MongoDB,不得不说这个C++开发的数据库效率还是很高的,数据的存储方式与知名的关系数据库大相径庭,但却显得十分有个性。接下来我们便要用到赞誉极高的jupyter notebook来进行数据分许了,对于数据的可视化笔者用的是charts这个第三方库,当然你也可以用matplotlib这个神奇的库。

我们先来看一看本次爬取的页面:

说个实话笔者觉得这个实习僧网面简直不要太友好,类容简介又好看,爬虫又好爬,着实让笔者偷了很多懒。关于爬虫这一块,感兴趣的可以看一下笔者前两遍文章或者去查询一下资料。这里我先上我的代码:

import requests
from bs4 import BeautifulSoup
import re
import pymongodef get_one_page(url):wb_data = requests.get(url)if wb_data.status_code == 200:return wb_data.textelse:return Nonedef parse_one_page(response):soup = BeautifulSoup(response, 'lxml')datas = soup.select('div#load_box div.jib_inf div.job_inf_inf')pattern = re.compile(r'<div.*?<h3>(.*?)</h3>.*?<a class="company_name".*?title="(.*?)">.*?<i class="money"></i>(.*?)</span>.*?<i class="days"></i>(.*?)</span>.*?</div>',re.S)wants = []for item in datas:final = re.findall(pattern, str(item))# print(final[0])wants.append(final[0])return wantsdef get_all_page():client=pymongo.MongoClient('localhost',27017)db=client['shixi']item=db['db']for i in range(1, 101):url = 'http://www.shixiseng.com/interns?k=&c=%E6%AD%A6%E6%B1%89&s=0,0&d=&m=&x=&t=zh&ch=&p=' + str(i)response = get_one_page(url)wants = parse_one_page(response)for want in wants:data = {'职位': want[0],'公司': want[1],'薪资': want[2],'要求': want[3]}print(data)item.insert_one(data)if __name__ == '__main__':get_all_page()

整篇代码的思想便是先得到每一页网页的数据,然后从中抓取数据信息,然后跳转页面直至得到100页的全部数据,将其写入mongdb数据库中。

上图显示的便是爬下来的数据和存在数据库中的信息,信息共有1000条,总体能反映出武汉实习生的基本待遇情况。接下来我们便要进行数据分析了:

client=pymongo.MongoClient('localhost',27017)
db=client['shixi']
item=db['db']
low=0
medium=0
high=0
shigh=0
noknow=0
for i in item.find():score=i['薪资'].strip().split('-')[0]if score=='面议':noknow=noknow+1else:grade=int(score)if grade<=50:low=low+1elif grade>50&grade<=100:medium=medium+1elif grade>100&grade<=200:high=high+1elif grade>200:shigh=shigh+1
print(low,medium,high,shigh,noknow)

我们从每条数据中得到‘薪资’这一项的类容并对它进行处理得到具体的薪资数值,其中主要运用到了python中string模块的strip()和split()方法。不知道的同学们可以去网上查阅一下相关资料。总之python很方便,方便到不行。

上面图片的底部便是这次统计所得到的统计结果,可以看到实习生的待遇是多么多么多么的差强人意。得到这些数据之后便要让它可视化。

series = [{'name': '极低薪资','data': [low],'type': 'column'
}, {'name': '低薪资','data': [medium],'type': 'column','color':'#ff0066'
}, {'name': '中等薪资','data': [high],'type': 'column'
}, {'name': '高薪资','data': [shigh],'type': 'column'
},{'name': '面议','data': [noknow],'type': 'column'
}]charts.plot(series, show='inline',options=dict(title=dict(text='实习薪资分布图')))

上面的代码便是其所用的python代码,一般这样的东西都很死,这个时候必须得用API。感兴趣的可以去查阅相关的API,一般都是英文的,就很气。泱泱华夏,巍巍中华什么就没有一个像样的第三方库。哎!

现在数据结果可以说是一目了然。写到这里本次的爬虫和简单的数据分析及可视化便要走入尾声了,希望这篇文章能给想学习python的同学们一点指导,如果你是高手希望你不吝赐教。

Python爬虫之实习僧招聘信息及数据分析相关推荐

  1. python爬取实习僧招聘信息字体反爬

    参考博客:http://www.cnblogs.com/eastonliu/p/9925652.html 实习僧招聘的网站采用了字体反爬,在页面上显示正常,查看源码关键信息乱码,如下图所示: 查看网页 ...

  2. python爬虫获取智联招聘信息

    智联招聘的页面信息是jsonp传输的数据,所以抓包或者正常爬取内容不可能的是,下面我将分享分析出来的数据并整体操作步骤.用谷歌浏览器打开网址,并打开检查,里面有network选项,包含这个网页的请求响 ...

  3. 【2020-10-27】 scrapy爬虫之猎聘招聘信息爬取

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! scrapy爬虫之猎聘招聘信息爬取 1.项目场景 目标网址:https://www.liepin.com/zhao ...

  4. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  5. python爬虫获取肯德基门店信息

    python爬虫获取肯德基门店信息 1.在谷歌浏览器中打开肯德基官网,进入餐厅查询页面 2.在搜索框中输入地区并按f12打开开发者工具 发现已经抓取到了一条Ajax请求,可以从中获取请求的url,以及 ...

  6. 深圳python爬虫培训南山科技园钽电容回收_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题...

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...

  7. 利用爬虫快速获取企业招聘信息

    基于JSoup的HTML解析(以58同城为例) House.java package com.newer.spider;public class House {String room;String d ...

  8. python解决租房问题_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...

  9. 【python实现网络爬虫(4)】实习僧网站信息爬取(字体反爬虫破解)

    实习僧网站 实习僧网址,地址为北京,在搜索框输入"python",如下 实战解析 步骤一.建立for循环爬取前20页的内容 首先.查看翻页URL的信息,找规律 第一页:https: ...

  10. python爬虫找工作要掌握什么_python爬虫实战:判断招聘信息的存在

    在找工作的时候,我们会选择上网查询招聘的信息,或者是通过一些招聘会进行现场面试.但由于信息更新不及时,有一些岗位会出现下架的情况,如果我们不注意的话,可能就扑了空.在时间上耽误了不说,面试的信息也会受 ...

最新文章

  1. Datical为数据库添加持续交付能力
  2. Python--logging....实例应用
  3. java object save,通过ObjectOutputStream发送文件,然后将其保存在Java中?
  4. restful post请求_猿蜕变9——一文搞定SpringMVC的RESTFul套路
  5. AsyncLocal 与 async await
  6. K-Complete Word CodeForces - 1332C(贪心)
  7. Docker-compose实战——Django+PostgreSQL
  8. 【Java多线程系列七】ExecutorService
  9. “我曾经的小项目比我在软件行业十年产生的影响还要大”
  10. python读取MNIST image数据
  11. linux查看创建目录命令,Linux菜鸟——常见命令一 查看及创建目录文件等命令
  12. 从「模拟」理解零知识证明:平行宇宙与时光倒流—— 探索零知识证明系列(二)
  13. python-用pyinstaller打包.py文件时,出现maxium recursion depth exceeded解决办法
  14. 一位基金经理的投资减法:少看研报多读书,少搞勾兑多数数;少跑调研多呼噜,少开晨会多开悟
  15. ubuntu双系统时间不一致现象
  16. 区分各个SQL的概念
  17. Android 之注册Facebook开发者账号
  18. 一招技巧解决360搜索结果页展示网站LOGO
  19. 为大家推荐几个不错的公众号!
  20. 图片转PDF,图片过长智能截取

热门文章

  1. 如何测量多个变量之间的非线性关系
  2. WRF users guide Chap5
  3. 【传感器学习】光电反射传感器
  4. python 爬取淘宝第二弹(淘宝数据爬取)
  5. 靶向肿瘤代谢,助力攻克癌症
  6. Mac 上的系统监控工具,可以实时监控系统的 CPU 使用率、内存使用率、硬盘使用、网速、电池等信息
  7. antd 表单通过form.getFieldsValue获取不全tabs组件下表单数据的问题
  8. xshell 导入.xsh 文件
  9. web前端学习13-19(HTML常用标签)
  10. git教程 git笔记 git常用 git使用 git操作 git简明 git版本控制 git仓库