爬虫大作业

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

 

 

 

转载于:https://www.cnblogs.com/qazwsx833/p/8974378.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值