新浪新闻动态网页爬取+热点词云分析
生活随笔
收集整理的這篇文章主要介紹了
新浪新闻动态网页爬取+热点词云分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
新浪新聞動態網頁爬取+熱點詞云分析
實驗內容
這里不用管拓展視頻是什么,視頻涉及的內容很淺顯。
在日常生活中,我們經常見到“年度熱詞”,你會好奇這究竟是怎么得到的?
我們最常見的思路就是,計算機通過分析大數據得到的。
下面我用這個例子展示一下詳細過程
上代碼
代碼都有注解,懂的都懂!
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException import jieba from wordcloud import WordCloud from imageio import imread import matplotlib.pyplot as pltdef getSinaNews(pages):# 要爬取的網頁url = 'https://news.sina.com.cn/roll/'# 獲取無界面瀏覽器# chrome_options = webdriver.ChromeOptions()# chrome_options.add_argument('--headless')# browser = webdriver.Chrome(options=chrome_options)# 有界面模式browser = webdriver.Chrome()# 爬news_list = ''while pages > 0:try:browser.get(url)news = browser.find_elements_by_xpath('//*[@id="d_list"]/ul/li/span/a')# 將爬取到的所有新聞標題放到一個String中for i in news:news_list = news_list + str(i.text)except NoSuchElementException:print('NoSuchElementException')browser.close()continue# 找到下一頁按鈕,并點擊'''//*[@id="d_list"]/div/span[15]/a'''browser.find_element_by_xpath('//*[@id="d_list"]/div/span/a').click()pages = pages - 1browser.quit()return news_listdef createWordCloud(news_list):bg_image = imread("bg.jpg")stopwords = [line.strip() for line in open('StopWords.txt', encoding='utf-8').readlines()]mytext = jieba.cut(news_list, cut_all=False)wt = " /".join(mytext)# 設置詞云相關參數word_cloud = WordCloud(# 設置背景顏色background_color="white",# 設置最大顯示的字數max_words=200,# 設置背景圖片mask=bg_image,# 此處添加停用詞庫stopwords=stopwords,# 設置中文字體,詞云默認字體是“DroidSansMono.ttf字體庫”,不支持中文font_path="SimHei.ttf",# 設置字體最大值max_font_size=500,# 設置有多少種隨機生成狀態,即有多少種配色方案random_state=30,# 輪廓線寬度contour_width=3,# 輪廓線顏色contour_color='steelblue',)mycloud = word_cloud.generate(wt) # 生成詞云# 設置生成圖片的標題plt.title('WordCloudOfSina') # 必須得用英文,否則報錯且不顯示plt.imshow(mycloud)# 設置是否顯示 X、Y 軸的下標plt.axis("off")plt.show()if __name__ == '__main__':page = eval(input('請輸入要爬取的頁面數量:'))news_list = getSinaNews(page)createWordCloud(news_list)代碼中涉及的圖片,這張圖片是在網上隨便找的,主要是為了充當詞云背景使用。
里面還涉及好幾個文件,我全都放到百度網盤,需要自取
鏈接:https://pan.baidu.com/s/1tlXOUitV7BKrAygdali4jg
提取碼:v3ad
復制這段內容后打開百度網盤手機App,操作更方便哦
步驟分析
實驗結果
總結
以上是生活随笔為你收集整理的新浪新闻动态网页爬取+热点词云分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python网络攻击代码_Python-
- 下一篇: ajax同步和异步的区别_同步电机和异步