本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于青灯编程 ,作者:清风

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

基本开发环境

Python 3.6

Pycharm

相关模块使用

爬虫模块

importrequestsimportreimportparselimport csv

词云模块

importjiebaimport wordcloud

目标网页分析

通过开发者工具可以看到,获取返回数据之后,数据是

在 window.__SEARCH_RESULT__ 里面,可以使用正则匹配数据。

如下图所示

'https://jobs.51job.com/beijing-ftq/127676506.html?s=01&t=0'

每一个招聘信息的详情页都是有对应的ID,只需要正则匹配提取ID值,通过拼接URL,然后再去招聘详情页提取招聘数据即可。

response = requests.get(url=url, headers=headers)

lis= re.findall('"jobid":"(\d+)"', response.text)for li inlis:

page_url= 'https://jobs.51job.com/beijing-hdq/{}.html?s=01&t=0'.format(li)

虽然网站是静态网页,但是网页编码是乱码,在爬取的过程中需要转码。

f = open('招聘.csv', mode='a', encoding='utf-8', newline='')

csv_writer= csv.DictWriter(f, fieldnames=['标题', '地区', '工作经验', '学历', '薪资', '福利', '招聘人数', '发布日期'])

csv_writer.writeheader()

response= requests.get(url=page_url, headers=headers)

response.encoding=response.apparent_encoding

selector=parsel.Selector(response.text)

title= selector.css('.cn h1::text').get() #标题

salary = selector.css('div.cn strong::text').get() #薪资

welfare = selector.css('.jtag div.t1 span::text').getall() #福利

welfare_info = '|'.join(welfare)

data_info= selector.css('.cn p.msg.ltype::attr(title)').get().split('|')

area= data_info[0] #地区

work_experience = data_info[1] #工作经验

educational_background = data_info[2] #学历

number_of_people = data_info[3] #招聘人数

release_date = data_info[-1].replace('发布', '') #发布日期

all_info_list = selector.css('div.tCompany_main > div:nth-child(1) > div p span::text').getall()

all_info= '\n'.join(all_info_list)

dit={'标题': title,'地区': area,'工作经验': work_experience,'学历': educational_background,'薪资': salary,'福利': welfare_info,'招聘人数': number_of_people,'发布日期': release_date,

}

csv_writer.writerow(dit)

with open('招聘信息.txt', mode='a', encoding='utf-8') as f:

f.write(all_info)

以上步骤即可完成关于招聘的相关数据爬取。

简单粗略的数据清洗

薪资待遇

content = pd.read_csv(r'D:\python\demo\数据分析\招聘\招聘.csv', encoding='utf-8')

salary= content['薪资']

salary_1=salary[salary.notnull()]

salary_count= pd.value_counts(salary_1)

学历要求

content = pd.read_csv(r'D:\python\demo\数据分析\招聘\招聘.csv', encoding='utf-8')

educational_background= content['学历']

educational_background_1=educational_background[educational_background.notnull()]

educational_background_count=pd.value_counts(educational_background_1).head()print(educational_background_count)

bar=Bar()

bar.add_xaxis(educational_background_count.index.tolist())

bar.add_yaxis("学历", educational_background_count.values.tolist())

bar.render('bar.html')

显示招聘人数为无要求

工作经验

content = pd.read_csv(r'D:\python\demo\数据分析\招聘\招聘.csv', encoding='utf-8')

work_experience= content['工作经验']

work_experience_count=pd.value_counts(work_experience)print(work_experience_count)

bar=Bar()

bar.add_xaxis(work_experience_count.index.tolist())

bar.add_yaxis("经验要求", work_experience_count.values.tolist())

bar.render('bar.html')

词云分析,技术点要求

py = imageio.imread("python.png")

f= open('python招聘信息.txt', encoding='utf-8')

re_txt=f.read()

result= re.findall(r'[a-zA-Z]+', re_txt)

txt= ' '.join(result)#jiabe 分词 分割词汇

txt_list =jieba.lcut(txt)

string= ' '.join(txt_list)#词云图设置

wc =wordcloud.WordCloud(

width=1000, #图片的宽

height=700, #图片的高

background_color='white', #图片背景颜色

font_path='msyh.ttc', #词云字体

mask=py, #所使用的词云图片

scale=15,

stopwords={' '},#contour_width=5,

#contour_color='red' # 轮廓颜色

)#给词云输入文字

wc.generate(string)#词云图保存图片地址

wc.to_file(r'python招聘信息.png')

总结:

数据分析是真的粗糙,属实辣眼睛~

python抓取招聘数据_Python爬取招聘网站数据并做数据可视化处理相关推荐

  1. python抓取微博评论_Python爬取新浪微博评论数据,你有空了解一下?

    开发工具 Python版本:3.6.4 相关模块: argparse模块: requests模块: jieba模块: wordcloud模块: 以及一些Python自带的模块. 环境搭建 安装Pyth ...

  2. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  3. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  4. python爬取天气数据_Python爬取历史天气数据

    Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...

  5. python爬取历史天气_Python 爬取历史天气数据

    Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...

  6. python开源代码百度盘_python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 代码片段import urllib import urllib.request import webbrowser import re def yun ...

  7. python爬取招聘信息_python 爬取boss直聘招聘信息实现

    原标题:python 爬取boss直聘招聘信息实现 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求 ...

  8. python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!

    原标题:Python 爬取boss直聘招聘信息! 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求, ...

  9. python爬网页统计数据_Python爬取阿拉丁统计信息过程图解

    背景 目前项目在移动端上,首推使用微信小程序.各项目的小程序访问数据有必要进行采集入库,方便后续做统计分析.虽然阿拉丁后台也提供了趋势分析等功能,但一个个的获取数据做数据分析是很痛苦的事情.通过将数据 ...

最新文章

  1. 轻松进行iPad Safari设置
  2. matlab信号内插,基于VC++和Matlab的数字信号内插处理系统
  3. 【Elasticsearch】Fielddata is disabled on text field fielddata=true
  4. 撸一串经典的detection tracking
  5. vSAN其实很简单-5分钟学会如何向VMware报修故障(内含福利)
  6. [转]Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )
  7. PHP回顾之多进程编程
  8. 阿里巴巴 EasyExcel (web版) 上传与下载(超详细) Excel上传下载
  9. Eclipse安装SVN插件的方法
  10. leetcode中文版python,Python 版 LeetCode 刷题笔记 #7 整数反转
  11. Data URL和图片
  12. 什么是路由守卫?vue-router有哪几种路由守卫?
  13. 异步编程举例之闹钟程序
  14. 今日头条下拉框推广,出效果付费
  15. 君康人寿2019年排名_君康人寿保险靠谱吗?
  16. 大数据初创企业Concurrent获千万美元融资
  17. C/C++ error/exception throw: access violation reading location 0x....;
  18. 高效办公——Excel表格-03篇(Excel常用快捷键 以及 Excel快捷键结合公式的各种常见的办公例子)
  19. 穷人家的孩子刘强东又投资了一家AI芯片公司
  20. 正大国际期货主账户:什么是外盘

热门文章

  1. gitlab安装及其汉化版
  2. 常用CSS标签属性重置
  3. 嵌入式系统由这四层结构组成!
  4. ProSci阿尔茨海默病 B-淀粉样蛋白检测套装说明书
  5. 犬之岛oracle,犬之岛主题曲插曲背景音乐片尾曲所有歌曲歌词介绍
  6. Tech Summit 2018见闻:IT之家读者捕捉铺路集团董事长玄隐
  7. 大数据测试:多图表报告数据抓取参数
  8. 全国话费充值;自动充值软件代理
  9. android 充话费接口,福禄充值(com.kamenwang.app.android) - 3.6.545 - 应用 - 酷安
  10. python用for循环画多个图形_Python matplotlib读取excel数据并用for循环画多个子图subplot操作...