用python做词云

来源:互联网 发布:ant maven知乎 编辑:程序博客网 时间:2024/05/18 02:22

用Python抓取太原地区IT行业的需求,并做成词云

好了首先就是分析网页:

1、搜索并进入中华英才网(http://www.chinahr.com/taiyuan/jobs/57552/)。

2、右击打开检查因为要分析的是对什么人才的需求,所以我们只需要抓取工作名称就好了。



3、点击箭头指向的标号,并选中工作的名字就可以看到他在网页中的属性


接下来就是编码了

import requests  from bs4 import BeautifulSoup  from datetime import datetime  import re  import json  import pandasjobs_total = []f = open('F:\\joblist.txt','a+',encoding='utf-8')print("............")url='http://www.chinahr.com/taiyuan/jobs/57552/'  res=requests.get(url)  res.encoding='utf-8'  soup=BeautifulSoup(res.text,'html.parser')  for i in range(0,20):    jobName=soup.select('.e1 a')[i].text    jobs_total.extend(jobName)    f.write("  "+jobName)     jobSalary=soup.select('.l2 .e2')[i].texthurl='http://www.chinahr.com/taiyuan/jobs/57552/{}'for i in range(2,99):    nurl=hurl.format(i)    res=requests.get(nurl)    res.encoding='utf-8'      soup=BeautifulSoup(res.text,'html.parser')      for i in range(0,20):        jobName=soup.select('.e1 a')[i].text        f.write("  "+jobName)        jobs_total.extend(jobName)        jobSalary=soup.select('.l2 .e2')[i].textlen(jobs_total)print("............")df=pandas.DataFrame(jobs_total)f.close()

一页是20条数据,一共99页。上边的代码就是帮我们抓取的所有职位信息。

接下来我们就要生成词云了。

刚开始写出来是这样的


都显示的是一个大方框子

说明生成成功了,但是写这个的是一个老外,不会说中文。我们需要自己的中文字体,于是有了下边的代码;

#-*- coding: utf-8 -*-%pylab inlinefrom wordcloud import WordCloudfrom os import pathimport matplotlib.pyplot as pltf = open('F:\\joblist.txt','r',encoding='utf-8')jobsText=f.read()wordcloud = WordCloud(font_path="F:\\simfang.ttf").generate(jobsText)plt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")
好了这下子就得到了我们需要的东西



这就是生成的词云,从图片中看到的是太原地区IT行业竟然多数找的是销售,作为一个学软件的好心累。

应为要爬取1万8千条数据,慢是正常的,耐心等待。


原创粉丝点击