一、選一個本身感興趣的主題。html
二、用python 編寫爬蟲程序,從網絡上爬取相關主題的數據。python
三、對爬了的數據進行文本分析,生成詞雲。算法
四、對文本分析結果進行解釋說明。網絡
五、寫一篇完整的博客,描述上述實現過程、遇到的問題及解決辦法、數據分析思想及結論。url
六、最後提交爬取的所有數據、爬蟲及數據分析源代碼。spa
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])
高頻詞生成詞雲code
經過爬取攜程網的遊記信息,統計出了亞洲前三十的熱門旅遊地區。因爲程序運行速度的問題(本身算法有問題),只是爬取了前500頁的遊記,因此統計出來的結果應該不太準確。orm