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

    选一个自己感兴趣的主题或网站。

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

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

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

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

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

    #-*- coding: UTF-8 -*-
    import requests
    import re
    import pandas
    from bs4 import BeautifulSoup
    import datetime
    import time
    import pymysql
    import matplotlib.pyplot as plt
    import jieba.analyse
    from wordcloud import WordCloud,ImageColorGenerator
    import numpy as np
    from PIL import Image,ImageSequence
    from os import path
    
    def writeNewsDetail(content):
        f = open('fly.txt','a',encoding='utf-8')
        f.write(content)
        f.close()
    
    
    def getNewDetail(newsUrl):
        resd = requests.get(newsUrl)
        resd.encoding = 'utf-8'
        soupd = BeautifulSoup(resd.text, 'html.parser')
        # print(resd.text)
        content = soupd.select('.conTxt #fontzoom p')
        a = int(len(content))
        for i in range(0,int(len(content))):
            f = open('fly.txt', 'a', encoding='utf-8')
            f.write(content[i].text)
            f.write("
    ")
            f.close()
    
    
    
        # news = {}
        # news['标题'] = soupd.select('.headline')[0].text.strip()
        # info = soupd.select('.artical-info')[0].text
        # if info.find('来源:') > 0:
        #     news['来源'] = info[info.find('来源:'):].split()[0].lstrip('来源:')
        # news['发布时间'] = datetime.strptime(info.lstrip(' ')[-23:-1].strip(), '%Y-%m-%d %H:%M:%S')
        # news['编辑'] = soupd.select('#editor_baidu')[0].text.strip(')').split(':')[1]
        # news['链接'] = newsUrl
        # fly = soupd.select('.artical-main-content')[0].text.strip()
        # writeNewsDetail(fly)
        # return news
    
    newsurl = 'http://www.raoping.gov.cn/Item/33226.aspx'
    getNewDetail(newsurl)
    
    lyric = ''
    f = open('fly.txt', 'r',encoding='utf-8')
    for i in f:
        lyric += f.read()
    result = jieba.analyse.textrank(lyric, topK=50, withWeight=True)
    keywords = dict()
    for i in result:
        keywords[i[0]] = i[1]
    print(keywords)
    image = Image.open('001.jpg')
    graph = np.array(image)
    wc = WordCloud(font_path='./fonts/simhei.ttf', background_color='White', max_words=50, mask=graph)
    wc.generate_from_frequencies(keywords)
    image_color = ImageColorGenerator(graph)
    plt.imshow(wc)
    plt.imshow(wc.recolor(color_func=image_color))
    plt.axis("off")
    plt.show()
    wc.to_file('dd.jpg')

  • 相关阅读:
    与开发团队高效协作的8个小技巧
    9本java程序员必读的书(附下载地址)
    NPOI导出饼图到Excel
    EF6不支持sqlite Code First解决方案
    C#程序访问底层网络
    如何自己开发软件测试工具?
    .Net mvc 根据前台参数动态绑定对象
    在SSM框架里新增一个功能
    2018-10-12 例会总结
    2018-10-11 java从入门到放弃--方法
  • 原文地址:https://www.cnblogs.com/cs007/p/8934056.html
Copyright © 2011-2022 走看看