爬虫大作业

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

2.用python 编写爬虫程序,从网络上爬取相关主题的数据。

3.对爬了的数据进行文本分析,生成词云。

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

5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。

6.最后提交爬取的全部数据、爬虫及数据分析源代码。

import requests,jieba
from bs4 import BeautifulSoup
import re
import matplotlib.pyplot as plt
from wordcloud import WordCloud

#网站 慕课网
url = "https://www.imooc.com/course/list"
resDescript = requests.get(url)
resDescript.encoding = "utf-8"
soupDescript = BeautifulSoup(resDescript.text, 'html.parser')
#全局变量
n =1
m =1
notelist = ""
#错误词汇
delete_word={'使','D','b','e','f','t','C','','o','','a','A','n','S','y','i','','',' ','','','','-','','(',''
    ,'',''}
#分析数据的方向、类型、类别
for s in soupDescript.select(".course-nav-item.on"):
        if n == 1 : print("方向:" + s.text)
        elif n ==2:print("类型:" + s.text)
        elif n ==3:print("类别:"+s.text)
        n = n+1
#分析数据的受欢迎类型、难度
for q in soupDescript.select(".sort-item.active"):
     if m == 1 : print("受欢迎类型:"+q.text)
     else: print("难度:"+q.text)
     m=m+1

#挖掘课程的相关信息
for content in soupDescript.select(".course-card-container"):
    img = content.select(".course-banner.lazy")[0].attrs["src"][2:]
    name = content.select(".course-card-name")[0].text
    desc = content.select(".course-card-desc")[0].text
    notelist += desc
    notelist+=name
    print("图片链接:"+img)
    print("课程名字:"+name)
    print("简介:"+desc)
    print("\n")
#jieba分析词语
newList=list(jieba.lcut(notelist))
NoteDic={}
for i in set(newList):    #计算次数
    NoteDic[i]=newList.count(i)

for i in delete_word:        #删除非法词汇
    if i in NoteDic:
        del NoteDic[i]
#进行排序
sort_word = sorted(NoteDic.items(), key = lambda d:d[1], reverse = True)  # 由大到小排序
#输出效果
print(sort_word)

wl_space_split = " ".join(sort_word)
my_wordcloud = WordCloud().generate(wl_space_split) 
plt.imshow(my_wordcloud) 
plt.axis("off")
 plt.show()

 

 

 

posted @ 2018-04-30 19:25  166黄仲浩  阅读(182)  评论(0编辑  收藏  举报