1.选一个自己感兴趣的主题。我选的是途牛网,并定位到自己家乡韶关。

2.网络上爬取相关的数据,截取网站的标题以及来源。
import requests
from bs4 import BeautifulSoup
res=requests.get('http://trips.tuniu.com/search?q=%E9%9F%B6%E5%85%B3')
res.encoding='utf-8'
soup=BeautifulSoup(res.text,'html.parser')
for trips in soup.select('li'):
if len(trips.select('.list-name'))>0:
title=trips.select('.list-name')[0].text
url=trips.select('a')[0]['href']
print(title,url)

3.进行文本分析,生成词云。我将网站复制下来,使用字典的方法统计出出现次数最多的20个词,并去掉一些符号。
import jieba
fr=open("tuniu.txt",'r',encoding='utf-8')
s=list(jieba.cut(fr.read()))
exp={',','
','.','。','”','“',':','…',' ','?','(',')','*',':','1',';'}
key=set(s)-exp
dic={}
for i in key:
dic[i]=s.count(i)
wc=list(dic.items())
wc.sort(key=lambda x:x[1],reverse=True)
for i in range(20):
print(wc[i])
fr.close()

生成词云。生成词云中遇到很多问题,其中找字体就是一个最麻烦的事。用中文制作词云必须设置字体,否则词云中的中文会变成方框。
#coding:utf-8
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text =open("tuniu.txt",'r',encoding='utf-8').read()
print(text)
wordlist = jieba.cut(text,cut_all=True)
wl_split = "/".join(wordlist)
mywc = WordCloud(
font_path="simfang.ttf"
).generate(text)
plt.imshow(mywc)
plt.axis("off")
plt.show()
