日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

新浪新闻动态网页爬取+热点词云分析

發布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 新浪新闻动态网页爬取+热点词云分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新浪新聞動態網頁爬取+熱點詞云分析

實驗內容


這里不用管拓展視頻是什么,視頻涉及的內容很淺顯。

在日常生活中,我們經常見到“年度熱詞”,你會好奇這究竟是怎么得到的?

我們最常見的思路就是,計算機通過分析大數據得到的。

下面我用這個例子展示一下詳細過程

上代碼

代碼都有注解,懂的都懂!

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,操作更方便哦

步驟分析

  • 首先需要明白,并不是所有的網站都是可以讓你爬的。有些網站的源代碼只有你訪問他才給你渲染生成。所以,萬無一失的方法就是讓計算機模擬人來進行自動化訪問。
  • 這里使用的是selenium庫中的內容。可以實現頁面自動跳轉。
  • 在尋找要爬取的內容時,可以使用瀏覽器的檢查功能。首先F12打開檢查,然后按照圖中次序進行操作,第一步點擊,第二步點擊,完成1、2步之后會定位到3這個位置,在3的基礎上右鍵
  • 這樣可以得到下面的注釋部分!,通過觀察里面的數字部分去掉就是他的“通項公式:“
  • 實驗結果

    總結

    以上是生活随笔為你收集整理的新浪新闻动态网页爬取+热点词云分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。