用python做词云
2017-10-16 08:36
176 查看
用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 pandas
jobs_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].text
hurl='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].text
len(jobs_total)
print("............")
df=pandas.DataFrame(jobs_total)
f.close()
一页是20条数据,一共99页。上边的代码就是帮我们抓取的所有职位信息。
接下来我们就要生成词云了。
刚开始写出来是这样的
都显示的是一个大方框子
说明生成成功了,但是写这个的是一个老外,不会说中文。我们需要自己的中文字体,于是有了下边的代码;
#-*- coding: utf-8 -*-
%pylab inline
from wordcloud import WordCloud
from os import path
import matplotlib.pyplot as plt
f = 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千条数据,慢是正常的,耐心等待。
好了首先就是分析网页:
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 pandas
jobs_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].text
hurl='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].text
len(jobs_total)
print("............")
df=pandas.DataFrame(jobs_total)
f.close()
一页是20条数据,一共99页。上边的代码就是帮我们抓取的所有职位信息。
接下来我们就要生成词云了。
刚开始写出来是这样的
都显示的是一个大方框子
说明生成成功了,但是写这个的是一个老外,不会说中文。我们需要自己的中文字体,于是有了下边的代码;
#-*- coding: utf-8 -*-
%pylab inline
from wordcloud import WordCloud
from os import path
import matplotlib.pyplot as plt
f = 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千条数据,慢是正常的,耐心等待。
相关文章推荐
- python操作xml创建网站
- Python 元组、列表、字典、文件的用法
- 用python做个网络爬虫
- f2py::演示在python中如何使用Fortran代码
- python学习
- python网络编程
- python3 模拟实现登录HDU并获取Cookie
- python中list常用操作
- Python使用pymongo模块操作MongoDB的方法示例
- python的编程环境
- 常用几个Python高效编程技巧
- Python之re操作
- [牛客网,剑指offer,python] 旋转数组的最小数字
- [IT练习册]Python练习项目 思路
- Python中运算符与while初识
- Python——切片备忘
- Python3.5编程实现修改IIS WEB.CONFIG的方法示例
- python并发编程之IO模型
- python基础练习_1
- 正则表达式Reguler Expression (with python re)