python词云图代码示例 无jieba_python词云和jieba库应用练习

本文通过爬取交大就业信息网近十年的宣讲会公司信息,展示了如何在没有使用jieba库的情况下,利用Python的Wordcloud库生成词云图。介绍了安装过程、数据爬取、词云图制作步骤,并排除了部分无效词语。
摘要由CSDN通过智能技术生成

前言

百度百科对词云的解释:“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。python提供了制作词云图的jieba和Wordcloud库,本文爬取交大就业信息网近十年的宣讲会公司信息,做出词云图,以期发现交大宣讲会中哪种公司的词频最高。

1.准备工作

利用pip安装jieba和wordcloud

pip install jieba

pip install Wordcloud

可能遇到的问题:pip安装源默认为国外,因为国内有“墙”的原因,网速会特别慢,很容易报read time out错误。

解决方法:这时候可以切换国内的pip源进行安装。推荐清华大学镜像:

可以在使用pip的时候在后面加上-i参数,指定pip源

pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

关于这两个库的使用可以自行百度,很简单。

2.数据爬取

打开交大官网获取招聘宣讲页的URL,要爬取的信息为下图框中内容。

对网页进行分析找到包含公司名称的网页标签位置:

很容易就获取到了,剩下的就是和上篇文章的套路一样了,直接上代码:

import requests

from bs4 import BeautifulSoup

import time

#以创建写模式把爬取到的数据保存到company.txt文件中

with open('C:/Users/ASUS/Desktop/company.txt','x',encoding='utf-8')as f:

#爬取675页宣讲会公司数据

for i in range(1,676):

url = 'http://job.xjtu.edu.cn/listMeeting.do?page={}&filter=%7b%22is4practice%22%3a%22-1%22%2c%22status%22%3a%22-1%22%7d&ext=&sign='.format(i)

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}

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

html = response.text

soup = BeautifulSoup(html,'html.parser')

#做一个有节操的爬手,睡眠一秒再发请求,防止请求太频繁ip被限制

time.sleep(1)

companys = soup.find_all('td',class_="btlist")

for div in companys:

company =div.get_text().strip()

f.write('{} '.format(company))

运行程序,大概十分钟左右,交大近十年675页上万条宣讲会公司信息就爬取下来了。验证一下爬的信息是否完整:

可以看到网页中的最后一条数据和txt文件中的是一致的,证明爬取信息完整。

3.词云图制作

直接上代码吧,里面有注释:

import jieba

from wordcloud import WordCloud

#排除词列表,剔除无效词语

excludes = {"股份","有限","责任","集团","公司","招聘","公告","有限公司","有限责任公司","一间","1间","2间",

"有限公司校园招聘","面向西安交大毕业生","面向交大毕业生","面向西安交大","中国","校园招聘","取消",}

#以只读模式打开刚爬取的txt文档

f = open('C:/Users/ASUS/Desktop/company.txt','r',encoding='utf-8')

txt = f.read()

f.close()

words = jieba.lcut(txt)#使用精确分词模式进行分词

newtxt = ''.join(words)#利用空格连接精确分词后的词语

#对词云图参数进行设置,以newtxt文本生成词云

wordcloud = WordCloud(background_color="white",#设置图片背景颜色

width=800,#设置图片宽度

height=600,#设置图片高度

font_path="C:/Windows/Fonts/simfang.ttf",#指定字体文件的完整路径,如果不设置可能显示不了中文

max_words=100,#词云中最大词数

max_font_size=80,#词云中最大的字体号数

stopwords = excludes,#被排除的词列表

).generate(newtxt)

wordcloud.to_file('company.png')

运行程序后就生成了一张公司词云图:

有点丑,,,,而且无效词语还得进一步剔除,可以看出“北京”,“上海”,“深圳”三个词频最高,可知这三个城市的公司偏向去交大做宣讲。。。等等,还得考虑每个城市做宣讲会的公司基数,中国综合实力排名前三的城市当然在公司数量上有绝对的优势,所以这三个城市的公司词频最高并不奇怪,所以以上内容都是瞎分析。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值