一个完整的大作业


1.选一个自己感兴趣的主题。

2.网络上爬取相关的数据。

3.进行文本分析,生成词云。

4.对文本分析结果解释说明。

5.写一篇完整的博客,附上源代码、数据爬取及分析结果,形成一个可展示的成果。

 

大作业细节:

python环境:3.6

爬取得网页:http://bbs.lol.qq.com/forum.php?mod=forumdisplay&fid=196&page=1

爬取的内容:

爬取每个帖子里每个用户发表的内容

爬虫代码:

# coding: utf-8

# In[24]:


import urllib.request as ur
output=open('C:\\Users\\ELsky\\Desktop\\aa.txt','a')
import re


# In[2]:


url='http://bbs.lol.qq.com/forum.php?mod=forumdisplay&fid=196&page=1'


# In[4]:


html=ur.urlopen(url).read().decode('utf-8','ignore')


# In[5]:


from bs4 import BeautifulSoup


# In[7]:


soup=BeautifulSoup(html,'html.parser')


# In[8]:


li=soup.select('table[summary="forum_196"] tbody')


# In[25]:


for i in range(len(li)):
    if(i%2==0):
        continue
    else:
        try:
            myurl=li[i].select('a[title="新窗口打开"]')[0].attrs['href']
        except:
            continue
        url1='http://bbs.lol.qq.com/'+myurl
        req=ur.Request(url1,headers={"user-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'})
        html1=ur.urlopen(req).read().decode('utf-8')
        soup1=BeautifulSoup(html1,'html.parser')
        content=re.sub('\s+','',soup1.select('div[class="pct"]')[0].get_text())
        output.write(content+'\n')
        print(content)
        print('----')
output.close()

 分词+词云

# coding: utf-8

# In[12]:

import re
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
file=open('C:\\Users\\ELsky\\Desktop\\aa.txt','r').readlines()


# In[15]:


data=''
for i in file:
    data+=' '.join(jieba.cut(i))+' '
    
#     break
my_wordcloud = WordCloud(font_path='C:\\Windows\\Boot\\Fonts\\simhei').generate(data)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()


# In[8]:

词云图

posted @ 2017-10-20 00:48  ELsky  阅读(365)  评论(0编辑  收藏  举报