zoukankan      html  css  js  c++  java
  • 爬虫大作业

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

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

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

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

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

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

    主题:人民网法治新闻

    import requests,jieba,locale
    from  bs4 import  BeautifulSoup
    locale.setlocale(locale.LC_CTYPE,'chinese')
    
    f = open('content.txt','a+',encoding='UTF-8')
    
    def getKeyWords(): #获取关键词
        f1 = open('content.txt', 'r', encoding='UTF-8')
        text = f1.read()
        wordset = set(jieba._lcut(text))
        worddict = {}
        for i in wordset:
            worddict[i] = text.count(i)
        deletelist, keywords = [], []
        for i in worddict.keys():
            if len(i) < 2:
                deletelist.append(i)
        for i in deletelist:
            del worddict[i]
        dictlist = list(worddict.items())
        dictlist.sort(key=lambda x: x[1], reverse=True)
        for i in range(20):
            print(dictlist[i])
    
    
    def getNewDetail(newsUrl): #获取新闻内容
        resd = requests.get(newsUrl) 
        resd.encoding = 'gbk'
        soupd = BeautifulSoup(resd.text, 'html.parser')
        content = soupd.select('.box_con')[0].text
        f.write(content) #将新闻内容写入文件
        getKeyWords()
    
    def getLiUrl(ListPageUrl): #获取每页的新闻链接
        res = requests.get(ListPageUrl)
        res.encoding = 'gbk'
        soupn = BeautifulSoup(res.text,'html.parser')
        for news in soupn.select('.on'):
                atail = news.a.attrs['href']
                a = 'http://legal.people.com.cn/'+atail
                getNewDetail(a)
                break
    
    Url = 'http://legal.people.com.cn/'
    res = requests.get(Url)
    res.encoding = 'gbk'
    soup = BeautifulSoup(res.text,'html.parser')
    print('第1页:')
    getLiUrl(Url)
    # for i in range(2,6):
    #     pageUrl = 'http://legal.people.com.cn/index{}.html#fy01'.format(i)
    #     print('第{}页:'.format(i))
    #     getLiUrl(pageUrl)
    #     break

    根据第一页的所有新闻的内容生成词云:

    从词云图可看出人民法治新闻分析了很多案件

    问题:安装词云插件失败,所以在网上使用在线生成词云工具来生成词云,先将获取的所有新闻的内容放到一个文件,再复制文件的内容到词云生成工具生成词云。

  • 相关阅读:
    升级或安装 GNOME Shell
    安装eclipse for c/c++环境
    BT3入门之中文语言支持
    开始接触BT5-自动登录X界面
    标准流与序列化
    IO流
    Collection与Map容器
    常用类
    枚举与常用类
    异常处理机制
  • 原文地址:https://www.cnblogs.com/stcy520/p/8974703.html
Copyright © 2011-2022 走看看