zoukankan      html  css  js  c++  java
  • 爬虫大作业_爬取三星Galaxy_S9论坛

    1.选一个自己感兴趣的主题或网站。(所有同学不能雷同)

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

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

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

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

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

     这次爬取的是三星S9论坛

    一共爬取了100页,大约2400篇帖子。对爬取到的文本进行分析,利用结巴分词,提取每篇帖子的20个关键词,再用词云对关键词文本进行分析,生成词云。

    一、以下是爬取帖子的相关代码

    import requests
    from bs4 import BeautifulSoup
    import jieba
    import jieba.analyse
    
    #将爬取到的文本保存到TXT文件 def file(content): f = open('samsung.txt', 'a', encoding='utf-8') f.write(content) f.write(" ") f.close()
    #对论坛中的每一页进行分析,得到每一个帖子的访问链接 def getListUrl(newbbsurl): print(newbbsurl) newbbs = requests.get(newbbsurl) soup1 = BeautifulSoup(newbbs.text, 'html.parser') body = soup1.select('.ImgList') for i in body: aurl = i.select('a')[0].attrs['href'] url = ("http://www.galaxyclub.cn" + aurl) print(url) getContent(url)
    #爬取每个帖子中的文本,提取每个帖子中的20个关键词,并保存到文件中 def getContent(url): newurl1 = requests.get(url) soup1 = BeautifulSoup(newurl1.text, 'html.parser') body = soup1.select('.BSHARE_POP')[0].text i = jieba.analyse.extract_tags(body, topK=20, withWeight=False, allowPOS=()) for a in i: file(a)
    #生成前一百页的链接 for i in range(1,100): aurl = 'http://www.galaxyclub.cn/bbs/galaxys_s9-p{}.html'.format(i) getListUrl(aurl)

    二、以下是读取文本生成词云的相关代码

    from scipy.misc import imread  
    from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
    import matplotlib.pyplot as plt
    
    #用于生成词云的图片 back_color = imread('123.png') wc = WordCloud(background_color='white', # 生成词云的背景颜色 max_words=1000, # 设置最大词数 mask=back_color, # 以该参数值作图绘制词云。 max_font_size=100, # 显示字体的最大值 stopwords=STOPWORDS.add(' '), # 使用内置的屏蔽词,再添加'苟利国' font_path="C:WindowsWinSxSamd64_microsoft-windows-font-truetype-simhei_31bf3856ad364e35_10.0.17133.1_none_d9a7426bdd402fe7simhei.ttf", # 解决无法显示中文的问题。 random_state=45, # 为每个词返回一个PIL颜色 ) #读取爬取到的文本文件 f = open('samsung.txt', 'r', encoding='utf-8').read() wc.generate(f) # 基于彩色图像生成相应彩色 image_colors = ImageColorGenerator(back_color) # 显示图片 plt.imshow(wc) # 关闭坐标轴 plt.axis('off') # 绘制词云 plt.figure() plt.imshow(wc.recolor(color_func=image_colors)) plt.axis('off') # 保存图片 wc.to_file('samsung.png')

    三、以下是生成词云时使用的图片和生成的词云

  • 相关阅读:
    Monkeyrunner介绍
    monkeyrunner 简单用例编写
    Android中如何查看内存
    Android内存之VSS/RSS/PSS/USS
    Android内存泄露(全自动篇)
    生成hprof文件,用MAT进行分析
    OpenGL入门学习【转】
    Vim保存代码折叠信息【转】
    windows下Cscope【转】
    Ruby学习笔记:Fiber
  • 原文地址:https://www.cnblogs.com/hano/p/8932475.html
Copyright © 2011-2022 走看看