python 爬虫学习:抓取智联招聘网站职位信息(二)
在第一篇文章(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 爬虫学习:抓取智联招聘网站职位信息(二)相关推荐
- python 爬虫学习:抓取智联招聘网站职位信息(一)
近期智联招聘的网站风格变化较快,这对于想爬取数据的人来说有些难受.因此,在前人基础上,我整理了针对智联招聘网站的最新结构进行数据抓取的代码,目前支持抓取职位搜索列表页面的列表项,并将职位列表以exlc ...
- Python爬虫:抓取智联招聘岗位信息和要求(进阶版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- Python爬虫:抓取智联招聘岗位信息和要求(基础版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- scrapy框架下的两个爬虫分工合作爬取智联招聘所有职位信息。
爬虫一 本次爬取为两个爬虫,第一个爬虫爬取需要访问的URL并且存储到文本中,第二个爬虫读取第一个爬虫爬取的URl然后依次爬取该URL下内容,先运行第一个爬虫然后运行第二个爬虫即可完成爬取. 本帖仅供学 ...
- Scrapy学习——爬取智联招聘网站案例
Scrapy学习--爬取智联招聘网站案例 安装scrapy 下载 安装 准备 分析 代码 结果 安装scrapy 如果直接使用pip安装会在安装Twisted报错,所以我们需要手动安装. 下载 安装s ...
- 北京python爬虫招聘信息_Python爬虫:抓取智联招聘岗位信息和要求(基础版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- 克服反爬虫机制爬取智联招聘网站
一.实验内容 1.爬取网站: 智联招聘网站(https://www.zhaopin.com/) 2.网站的反爬虫机制: 在我频繁爬取智联招聘网站之后,它会出现以下文字(尽管我已经控制了爬虫的爬 ...
- (转)python爬虫实例——爬取智联招聘信息
受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...
- python爬虫实例——爬取智联招聘信息
受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...
最新文章
- JS基础--条件判断(3)
- 如何在使用摩托罗拉上的RSS阅读器应用进行一次订阅
- [JavaWeb-HTML]HTML标签_表单标签
- java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园
- C#格式化字符串净化代码的方法
- 计算机辅助翻译专业院校,2017年北大计算机辅助翻译考研经验分享
- mui 图片预览(自定义)功能 - 案例篇
- 进程在linux系统中原理,Linux系统原理知识 进程切换的概念介绍
- python下pymysql的问题
- Effective Java 思维导图
- 【Pytorch教程】:激励函数
- 【数据结构】范浩强Treap(非旋转平衡树)可持久化Treap总结
- 如何判断电路反馈类型
- AT89C51中断模板(宏定义)
- python中shape的解释
- Vue2.0 —— 运用算法实现 AST 抽象语法树
- 无涯教程 - Latex 格式(Format)
- 【旧资料整理】8086汇编 鼠标操作
- C语言字符数组和字符串数组的初始化
- cdma 复制短息到uim卡的实现