博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬虫大作业_爬取三星Galaxy_S9论坛
阅读量:4623 次
发布时间:2019-06-09

本文共 2295 字,大约阅读时间需要 7 分钟。

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

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

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

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

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

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

 

 这次爬取的是三星S9论坛

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

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

import requestsfrom bs4 import BeautifulSoupimport jiebaimport jieba.analyse #将爬取到的文本保存到TXT文件def file(content):    f = open('samsung.txt', 'a', encoding='utf-8')    f.write(content)    f.write("\r")    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, ImageColorGeneratorimport 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('\n'),  # 使用内置的屏蔽词,再添加'苟利国'               font_path="C:\Windows\WinSxS\amd64_microsoft-windows-font-truetype-simhei_31bf3856ad364e35_10.0.17133.1_none_d9a7426bdd402fe7\simhei.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')

 

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

 

 

 

转载于:https://www.cnblogs.com/hano/p/8932475.html

你可能感兴趣的文章
logback.xml 配置使用
查看>>
iOS沙盒路径变化的说明详解
查看>>
MVC增加Areas,避免控制器冲突
查看>>
Unable to load template file 'rj\ThinkPHP/Tpl/dispatch_jump.tpl'----thinkphp3.2.3
查看>>
Javascript Date类常用方法详解
查看>>
IIS配置域用户自动登录
查看>>
linux基础命令
查看>>
Java——Json字符串与Object互转
查看>>
Guava官方文档-RateLimiter类
查看>>
css2----清除浮动
查看>>
为HTML添加图片登录按钮
查看>>
Vuejs模板绑定
查看>>
Archlinux/Manjaro使用笔记-报错:一个或多个 PGP 签名无法校验!的解决方法
查看>>
P3161 [CQOI2012]模拟工厂
查看>>
keepalived+haproxy实现高可用
查看>>
centos6 python安装sqlite解决No module named
查看>>
layui数据表格自定义每页条数limit
查看>>
sendmail报错Relaying denied
查看>>
阿里中间件技术及双十一实践--中间件总体介绍
查看>>
DNS简介
查看>>