在第一篇文章(python 爬虫学习:抓取智联招聘网站职位信息(一))中,我们介绍了爬取智联招聘网站上基于岗位关键字,及地区进行搜索的岗位信息,并对爬取到的岗位工资数据进行统计并生成直方图展示;同时进入每个职位明细页面提取出职位要求部分的页面内容,经数据清洗后将职位要求部分写入txt文件(FILEPATH+FILENAME + ‘-requirements.TXT’);接下来我们要对该txt文件中的数据进行分词及词频分析并生成词频统计图。
可以看到我们对深圳+广州地区的银行+客户经理岗位进行抓取到的数据文件中(深圳+广州地区银行+客户经理岗位统计结果-requirements.txt),显示的是所有岗位明细的要求数据:

因此我们需要使用python的分词库,jieba分词来对以上文本进行分词处理:

# 结巴分词
content = read_txt_file(path)
segment = jieba.lcut(content)
words_df = pd.DataFrame({'segment': segment})
# 剔除停止词
stopwords = pd.read_csv("stopwords.txt", index_col=False, quoting=3, sep=" ", names=['stopword'], encoding='utf-8')
words_df = words_df[~words_df.segment.isin(stopwords.stopword)]`

其中用到了“stopwords.txt”这个停止词文件(可以随便百度一个放到工程目录下即可)来剔除停止词,如果有需要也可以自行在其中添加本次分词中出现的不需要的词汇;
接下来对其进行词频统计:

 #词频统计words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": numpy.size})words_stat = words_stat.reset_index().sort_values(by=["计数"], ascending=False)print(words_stat)

得到的words_stat对象就是一个单词及对应词频数的json格式数据,打印出来如下:

segment  计数
销售  37
2     30
行业  17
资格  15
银行  15
岗位  13
经理  12

接下来我们用python的wordcloud库来对以上词频进行可视化,生成词云;

    # 生成词云, 可以用generate输入全部文本,也可以我们计算好词频后使用generate_from_frequencies函数word_frequence = {x[0]: x[1] for x in words_stat.head(100).values}word_frequence_dict = {}for key in word_frequence:word_frequence_dict[key] = word_frequence[key]wordcloud.generate_from_frequencies(word_frequence_dict)

本篇所有的代码放在jieba_analysis.py文件中:

import pandas as pd
import numpy
import imageio
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import os
from src.zhilian_config import *def read_txt_file(path):'''读取txt文本'''with open(path, 'r', encoding='utf-8', newline='') as f:return f.read()def jieba_analysis(path):# 结巴分词content = read_txt_file(path)segment = jieba.lcut(content)words_df = pd.DataFrame({'segment': segment})# 剔除停止词stopwords = pd.read_csv("stopwords.txt", index_col=False, quoting=3, sep=" ", names=['stopword'], encoding='utf-8')words_df = words_df[~words_df.segment.isin(stopwords.stopword)]# 词频统计words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": numpy.size})words_stat = words_stat.reset_index().sort_values(by=["计数"], ascending=False)print(words_stat)return words_stat#  词云可视化
def wordcloud_show(words_stat):# 设置词云属性#设置生成词云的图片原型color_mask = imageio.imread('python-img.jpg')wordcloud = WordCloud(font_path="simhei.ttf",  # 设置字体可以显示中文background_color="white",  # 背景颜色max_words=200,  # 词云显示的最大词数mask=color_mask,  # 设置背景图片max_font_size=300,  # 字体最大值random_state=42,width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,                                                   # 那么保存的图片大小将会按照其大小保存,margin为词语边缘距离)# 生成词云, 可以用generate输入全部文本,也可以我们计算好词频后使用generate_from_frequencies函数word_frequence = {x[0]: x[1] for x in words_stat.head(100).values}word_frequence_dict = {}for key in word_frequence:word_frequence_dict[key] = word_frequence[key]wordcloud.generate_from_frequencies(word_frequence_dict)# 从背景图片生成颜色值image_colors = ImageColorGenerator(color_mask)# 重新上色wordcloud.recolor(color_func=image_colors)# 保存图片wordcloud.to_file('result\output.png')plt.imshow(wordcloud)plt.axis("off")plt.show()# 主函数
if __name__ == '__main__':words_stat = jieba_analysis(os.path.join(FILEPATH, FILENAME + '-requirements.txt'))wordcloud_show(words_stat)

我们使用的词云图片原型(python-img.jpg)如下:

最后运行主函数后,生成的词云图片(路径:result\output.png)如下:

到此,我们对智联招聘网站的职位抓取以及数据分析基本完成。

python 爬虫学习:抓取智联招聘网站职位信息(二)相关推荐

  1. python 爬虫学习:抓取智联招聘网站职位信息(一)

    近期智联招聘的网站风格变化较快,这对于想爬取数据的人来说有些难受.因此,在前人基础上,我整理了针对智联招聘网站的最新结构进行数据抓取的代码,目前支持抓取职位搜索列表页面的列表项,并将职位列表以exlc ...

  2. Python爬虫:抓取智联招聘岗位信息和要求(进阶版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  3. Python爬虫:抓取智联招聘岗位信息和要求(基础版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  4. scrapy框架下的两个爬虫分工合作爬取智联招聘所有职位信息。

    爬虫一 本次爬取为两个爬虫,第一个爬虫爬取需要访问的URL并且存储到文本中,第二个爬虫读取第一个爬虫爬取的URl然后依次爬取该URL下内容,先运行第一个爬虫然后运行第二个爬虫即可完成爬取. 本帖仅供学 ...

  5. Scrapy学习——爬取智联招聘网站案例

    Scrapy学习--爬取智联招聘网站案例 安装scrapy 下载 安装 准备 分析 代码 结果 安装scrapy 如果直接使用pip安装会在安装Twisted报错,所以我们需要手动安装. 下载 安装s ...

  6. 北京python爬虫招聘信息_Python爬虫:抓取智联招聘岗位信息和要求(基础版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  7. 克服反爬虫机制爬取智联招聘网站

    一.实验内容 1.爬取网站: 智联招聘网站(https://www.zhaopin.com/) 2.网站的反爬虫机制:     在我频繁爬取智联招聘网站之后,它会出现以下文字(尽管我已经控制了爬虫的爬 ...

  8. (转)python爬虫实例——爬取智联招聘信息

    受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...

  9. python爬虫实例——爬取智联招聘信息

    受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...

最新文章

  1. JS基础--条件判断(3)
  2. 如何在使用摩托罗拉上的RSS阅读器应用进行一次订阅
  3. [JavaWeb-HTML]HTML标签_表单标签
  4. java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园
  5. C#格式化字符串净化代码的方法
  6. 计算机辅助翻译专业院校,2017年北大计算机辅助翻译考研经验分享
  7. mui 图片预览(自定义)功能 - 案例篇
  8. 进程在linux系统中原理,Linux系统原理知识 进程切换的概念介绍
  9. python下pymysql的问题
  10. Effective Java 思维导图
  11. 【Pytorch教程】:激励函数
  12. 【数据结构】范浩强Treap(非旋转平衡树)可持久化Treap总结
  13. 如何判断电路反馈类型
  14. AT89C51中断模板(宏定义)
  15. python中shape的解释
  16. Vue2.0 —— 运用算法实现 AST 抽象语法树
  17. 无涯教程 - Latex 格式(Format)
  18. 【旧资料整理】8086汇编 鼠标操作
  19. C语言字符数组和字符串数组的初始化
  20. cdma 复制短息到uim卡的实现

热门文章

  1. PaddlePaddle
  2. 深度学习训练营_第P6周_好莱坞明星识别
  3. coos字节点跟换父节点,retain用法
  4. PCL——从点云到网格(一)利用OpenNI2和深度相机生成点云
  5. Java虚拟机组成部分及作用
  6. 拖拽排序插件Sortable.js在拖动的时候不能滑动鼠标滚轮滚动屏幕的问题
  7. MIML(一):Fast Multi-Instance Multi-label learning
  8. 再获金融行业认可 冲量在线获第五届浦发银行国际金融科技创新大赛提名奖
  9. 移动端开发的方式--浅显易懂
  10. 使用vassitx配色方案_选择网站配色方案的实用方法