1.选一个自己感兴趣的主题。
2.用python 编写爬虫程序,从网络上爬取相关主题的数据。
3.对爬了的数据进行文本分析,生成词云。
4.对文本分析结果进行解释说明。
5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
6.最后提交爬取的全部数据、爬虫及数据分析源代码。
import requests
from bs4 import BeautifulSoup
import re
import pandas
import jieba
page='http://news.163.com/18/0428/15/DGG6CE7300018AOQ.html'
res=requests.get(page)
soup=BeautifulSoup(res.text,'html.parser')
a=soup.select('p')
news=''
for i in a[5:13]:
new=i.text
news=news+new
f=open('new.txt','w')
f.write(news)
f=open('new.txt','r')
f.close()
f=open('new.txt','r')
str1=f.read()
news1=list(jieba.lcut(str1))
wordrset=set(news1)
missword={',','。','的','地','一','我','你','他','得'}
dic={}
key={}
for i in wordrset:
if i in missword:
del i
for i in wordrset:
key[i]=news1.count(i)
dic[i]=key[i]
sort=sorted(key.items(),key=lambda d:d[1],reverse=True)
for j in range(30):
print(sort[j][0])
我写的爬虫程序的思路主要有下面几个方面,首先先确定要爬的网页,我爬的网页是网易新闻的某一篇,首先我要用浏览器开发者工具确定文章内容在哪个元素部分里面,然后用soup.select('p')选取p部分的内容,创建一个空字符串,用于存放新闻内容,然后把内容存放在叫new的文档中,然后再次打开该文件,利用jieba将内容获取详细,设置一个集合,用于存放出现的词组(不重复),确定不要的词组,然后利用字典的特性,把字典里的键赋值,进行排序。然后最后获取排序前30的词组。在这个过程中所遇到的问题就是txt文档乱码的问题,因为之前在之前爬取学校新闻的过程中,用的编码是utf-8,而像网易所用的编码可能不一样,所以会不一样,可能最后会出现错误,不过只要改为其它编码就可以了,然后就是词云的生成部分,我把所有的词都放进了词云生成器里面,但是生成的却并没有那么多的选项。生成的词云截图如下: