1、选一个自己感兴趣的主题。
2、用python 编写爬虫程序,从网络上爬取相关主题的数据。
3、对爬了的数据进行文本分析,生成词云。
4、对文本分析结果进行解释说明。
5、写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
6、最后提交爬取的全部数据、爬虫及数据分析源代码。
import requests from bs4 import BeautifulSoup #import jieba import jieba.posseg as psg f = open('content.txt','a+',encoding='UTF-8') newsurl = 'http://you.ctrip.com/travels/asia120001/t3.html' path='http://you.ctrip.com/travels/asia120001/t3-p' res = requests.get(newsurl) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser') # pages = int(soup.select('.numpage')[0].text) #print(pages) 获取总页数 for news in soup.select('.ellipsis'): f.write(news.text+"") for i in range(2, 500): pageUrl = path + '{}.html'.format(i) res = requests.get(pageUrl) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser') for new in soup.select('.ellipsis'): f.write(new.text) f.write(" ") f2 = open('content.txt', 'r',encoding='UTF-8') text = f2.read() wordlist = list(psg.cut(text)) set = set(wordlist) dict = {} for key in set: if key.flag.startswith('ns'): #选出词性为地名的词语 dict[key]=wordlist.count(key) #词频统计 dictlist = list(dict.items()) dictlist.sort(key=lambda x: x[1], reverse=True) for i in range(30): #前三十的词频 print(dictlist[i])
高频词生成词云
通过爬取携程网的游记信息,统计出了亚洲前三十的热门旅游地区。由于程序运行速度的问题(自己算法有问题),只是爬取了前500页的游记,所以统计出来的结果应该不太准确。