*词云制作
目的:爬取前100名大学并且制作词云
1.使用存储数据库为MongoDB数据库,创建代码如下:
class bug(object):
clent=pymongo.MongoClient("Localhost",27017)
zhongji=clent.zhongji bug=zhongji["bug"]
spider1=bug["spider1"]
infolist2=[]
infolist1=[]
2.获取数据:
数据地址:http://www.gaosan.com/gaokao/196075.html
使用request,Beautifulsoup方法爬取,代码如下:
def get_url(self):
kv={"user-agent":"Moizlla/5.0"}
url="http://www.gaosan.com/gaokao/196075.html"
r=requests.get(url, headers=kv)
r.encoding='utf-8'
print(r.status_code)
print(r.encoding)
return r.text
def anay_html(self,html):
soup=BeautifulSoup(html,'html.parser')
passage=soup.find("body").find("div",attrs={"class":"content"}).find("div",attrs={"class":"c_left"}).find("tbody")
name_list=passage.find_all("tr")
for info in name_list:
name=info.find_all("td")[1].string
grade=info.find_all("td")[2].getText()
bug.infolist2.append(name)
spider.insert_one(name)#添加数据到MongoDB
3.因数据比较干净,不必进行数据清洗,删除第一个元素‘学校名称’即可
并且使用worldcloud进行绘制,matplotlib 进行展示 代码如下:
def show(self,text):
del text[0]
text=str(text)
wordCloud=WordCloud(font_path='simkai.ttf',background_color='white',width=2500,height=1200,font_step=1,margin=2).generate(text)
plt.imshow(wordCloud)
plt.axis='off'
plt.show()
4.总结
所用第三方库如下:
from bs4 import BeautifulSoup
import requests
import matplotlib.pyplot as plt
import pymongo
from wordcloud import WordCloud, STOPWORDS
展示效果图如下:
数据库展示:
词云效果图:
爬取了前100所大学的名字,存储到MongoDB库中防止丢失,利用worldcloud,matplotlib 进行绘图和展示,虽然爬取的内容较少且简单,但是流程基本完整。