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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

爬取《哪吒》豆瓣短评,我得到了什么?

發布時間:2024/9/15 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取《哪吒》豆瓣短评,我得到了什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“藍字”,感謝關注!

這段時間,《哪吒》爆火。

于是,就想看看,關于《哪吒》的評價。


為什么選擇豆瓣?

質量和口碑還不錯吧。


可是,折騰一波之后,發現了這個。


豆瓣從2017.10月開始全面禁止爬取數據,僅僅開放500條數據,白天1分鐘最多可以爬取40次,晚上一分鐘可爬取60次數,超過此次數則會封禁IP地址。



登錄狀態下,按網頁按鈕點擊“后頁”,參數“start”最多為480,也就是20*25=500條;非登錄狀態下,最多為200條。

行吧,500條就500條吧,Let's go。


整個過程分為兩部分:

1 獲取豆瓣短評數據

2 詞云可視化


1 獲取短評數據


1)爬蟲原理簡單分析



2)需求分析

好了,爬蟲的基本思路我們已經了解了。

現在,開始干活了。


首先,我們打開短評的url地址:

https://movie.douban.com/subject/26794435/comments?status=P


我們想要獲取以下內容:


-用戶名稱

-評分

-短評內容



3)URL解析


要想獲取數據,我們先來分析一下URL。


4)發送請求,獲取響應

根據url,我們可以發送請求了,注意攜帶cookie



先來爬一頁,看看結果。


import?requestsheaders?=?{'User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/76.0".3809.100?Safari/537.36','Cookie':?'你的cookie'}for?i?in?range(0,?1):url?=?'https://movie.douban.com/subject/26794435/comments?start={}&limit=20&sort=new_s'?\'core&status=P'.format(i*10)reponse?=?requests.get(url,?headers=headers)print(reponse.content.decode())


5)定位信息


從圖中,我們可以看到對應的標簽和屬性。


利用xpath,我們可以很輕松地定位到我們想要的信息。推薦《6節課學會python爬蟲》,里邊講解得很好。


先定位到,每一頁的“20個短評”對應的xml位置。



再遍歷,每一個短評內容。



結合代碼來看一下。


item_list?=?[]html?=?etree.HTML(reponse.content.decode()) div_list?=?html.xpath('//*[@id="comments"]//div[@class="comment"]')#?定位大塊 for?div?in?div_list:#?遍歷每一條信息item?=?{}#?./?注意從當前節點,向下獲取 # 用戶姓名/用戶主頁的url/短評內容/評分 item['user_name']?=?div.xpath('.//span[@class="comment-info"]/a/text()')[0]item['user_url']?=?div.xpath('.//span[@class="comment-info"]/a/@href')[0]item['content']?=?div.xpath('.//span[@class="short"]/text()')[0].replace('\n',?'') item['score']?=?div.xpath('.//span[@class="comment-info"]/span/@title')[0]item_list.append(item)print(item)


5)保存結果


上邊,已經把每一條數據,整理成一個字典。然后,把字典放在一個大的列表里。



這樣,我們可以很輕松的把數據導出為csv文件。


#?把數據存成csv文件import?pandas?as?pd df?=?pd.DataFrame(item_list)#?保證不亂碼 df.to_csv('哪吒短評數據.csv',?encoding='utf_8_sig')



2 詞云可視化

1)jieba分詞


參考博客:

https://blog.csdn.net/dnxbjyj/article/details/72854460? ?


結巴分詞 是針對字符串進行處理的,分詞后 會返回一個列表或者迭代器,你需要用 字符串的join方法,把詞語列表 重新拼接成一個字符串,然后把內容給到 wordcloud 生成詞云。


import?pandas?as?pd import?jieba#?讀取數據 df?=?pd.read_csv('哪吒短評數據.csv',?encoding='utf-8-sig')text?=?'' #?獲得wordcloud?需要的?文本格式 for?line?in?df['content']:text?+=?'?'.join(jieba.cut(str(line),?cut_all=False))??#?結巴分詞


2)詞云展示


創建一個詞云對象,添加一些基本設置。比如,中文字體,背景圖片,停用詞等等。然后,根據上文中的 text,生成詞云。


我們可以看一下,文本中最高頻的50個詞。并把詞云保存為本地圖片。


from?wordcloud?import?WordCloud import?matplotlib.pyplot?as?plt#?停用詞 words?=?pd.read_csv('stopwords_zh.txt',?error_bad_lines=False,?encoding='gbk',?engine?='python',?names=['stopword'])stopwords?=?set('') stopwords.update(words['stopword'])backgroud_Image?=?plt.imread('豆瓣.jpg')??#?背景圖#?詞云的一些參數設置 wc?=?WordCloud(background_color='white',mask=backgroud_Image,font_path='SourceHanSerifCN-Medium.otf',max_words=200,max_font_size=200,min_font_size=8,random_state=50,stopwords=stopwords)#?print(text)#?生成詞云 word_cloud?=?wc.generate_from_text(text)#?看看詞頻高的有哪些 process_word?=?WordCloud.process_text(wc,?text) sort?=?sorted(process_word.items(),?key=lambda?e:?e[1],?reverse=True) print(sort[:50])plt.imshow(word_cloud) plt.axis('off')wc.to_file('結果.jpg') print('生成詞云成功!')


看一下高頻詞的結果。?


[('哪吒',?24),?('電影',?9),?('這部',?8),?('故事',?8),? ('動畫',?6),?('國產?動畫',?6),?('不由',?5),?('國漫',?5),? ('想象力',?5),?('國產',?5),?('人物',?5),?('我命',?4),?('一部',?4),? ('中國',?4),?('觀眾',?4),?('更是',?4),?('角色',?3),?('成見',?3),('笑料',?3),?('暑期',?3),?('不錯',?3),?('有人',?3),?('神話',?3),? ('形式',?3),?('良心',?3),?('熱血',?3),?('動畫電影',?3),?('成熟',?3),? ('優秀',?3),?('白蛇',?3),?('喜劇',?3),?('改編',?3),?('內核',?3),? ('最佳',?3),?('飽滿',?3),?('作品',?3),?('高潮',?3),?('場面',?3), ('大圣?歸來',?3),?('缺陷',?2),?('本片',?2),?('打破',?2),? ('偏見',?2),?('政治',?2),?('正確',?2),?('妖怪',?2),? ('爛片',?2),?('社稷',?2),?('震撼',?2),?('封神',?2)]


看一下詞云。

總結來了


我把文章中的一些重要的內容,總結在了下面的一張圖里,方便大家保存、查閱。



我把源文件及相關數據都打包好了,后臺回復【哪吒】,一鍵提取。


這個小例子,挺基礎的,適合入門的同學,但知識點也挺多的。


推薦閱讀:(點擊下方標題即可跳轉)沒看完這11 條,別說你精通 Python 裝飾器
張飛比關羽還能打?一位酷愛三國的日本程序員,用NLP分析了武將們的戰斗力

??歡迎長按圖片識別二維碼關注~

總結

以上是生活随笔為你收集整理的爬取《哪吒》豆瓣短评,我得到了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

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