一个完整的大作业

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()
 

原文地址:https://www.cnblogs.com/elewen/p/7689619.html