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

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

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

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

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

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

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

    import requests
    from bs4 import BeautifulSoup
    from datetime import datetime
    import re
    import jieba
    
    def getNewsDetail(newsurl):#获取新闻详情
        resd=requests.get(newsurl)
        resd.encoding='utf-8'
        soupd=BeautifulSoup(resd.text,'html.parser')
    
        click=soupd.select('.like')[0].text.split(" ")[0]
        title = soupd.select('h1')[0].text
        info=soupd.select('.pdate')[0].text
        dt=datetime.strptime(info.lstrip('发布时间:')[0:19],'%Y-%m-%d %H:%M:%S')
        author=soupd.select('p')[0].text.split(" ")[1].strip('<p>')
        delcontent=soupd.select('p')[0].text
        newscontent=soupd.select('.maintext')[0].text.lstrip(delcontent)
    
        keyWords=getKeyWords(newscontent)
    
        print(dt)
        print(title)
        print(click)
        print(author)
        print(newscontent)
        print(keyWords)
    
    def getKeyWords(newscontent):#获取新闻关键词
        newscontent = ''.join(re.findall('[u4e00-u9fa5]', newscontent))
        wordSet=set(jieba._lcut(newscontent))
        wordDict={}
        for i in wordSet:
            wordDict[i]=newscontent.count(i)
        delList=[]
        for i in wordDict.keys():
            if len(i)<2:
                delList.append(i)
        for i in delList:
            del wordDict[i]
        dictList=list(wordDict.items())
        dictList.sort(key=lambda item: item[1], reverse=True)
        keyWords=[]
        for i in range(20):
            keyWords.append(dictList[i][0])
        return keyWords
    
    
    newsurl="http://news.gdufe.edu.cn/11499"
    getNewsDetail(newsurl)

    运行结果:

    生成词云:

  • 相关阅读:
    windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作
    开发依赖和运行依赖
    vue-cli 如何修改或删除预设preset记录
    git stash 缓存本地修改 简介
    DWZ 框架详解
    vue 脚手架(二,项目依赖说明 package.json)
    vue 脚手架(一,创建脚手架)
    JavaScript Number() Vs new Number()
    Flex 布局的各属性取值解释
    mysql explain extended 查看 执行计划
  • 原文地址:https://www.cnblogs.com/ffde/p/8974532.html
Copyright © 2011-2022 走看看