• 爬虫大作业


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

  • 相关阅读:
    C#代码动态编译、动态执行、动态调试
    php’s explode() 函数
    exec函数族
    在C语言中执行shell命令
    dmesg简介
    错误输出
    php’s json_decode函数
    使expect脚本传回返回值
    php’s fgets() 函数
    统计当前目录下的所有文件目录大小,不显示子目录与子文件
  • 原文地址:https://www.cnblogs.com/qazwsx833/p/8974378.html
Copyright © 2020-2023  润新知