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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/9/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取《哪吒》豆瓣短评,我得到了什么? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方“藍(lán)字”,感謝關(guān)注!

這段時(shí)間,《哪吒》爆火。

于是,就想看看,關(guān)于《哪吒》的評(píng)價(jià)。


為什么選擇豆瓣?

質(zhì)量和口碑還不錯(cuò)吧。


可是,折騰一波之后,發(fā)現(xiàn)了這個(gè)。


豆瓣從2017.10月開(kāi)始全面禁止爬取數(shù)據(jù),僅僅開(kāi)放500條數(shù)據(jù),白天1分鐘最多可以爬取40次,晚上一分鐘可爬取60次數(shù),超過(guò)此次數(shù)則會(huì)封禁IP地址。



登錄狀態(tài)下,按網(wǎng)頁(yè)按鈕點(diǎn)擊“后頁(yè)”,參數(shù)“start”最多為480,也就是20*25=500條;非登錄狀態(tài)下,最多為200條。

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


整個(gè)過(guò)程分為兩部分:

1 獲取豆瓣短評(píng)數(shù)據(jù)

2 詞云可視化


1 獲取短評(píng)數(shù)據(jù)


1)爬蟲(chóng)原理簡(jiǎn)單分析



2)需求分析

好了,爬蟲(chóng)的基本思路我們已經(jīng)了解了。

現(xiàn)在,開(kāi)始干活了。


首先,我們打開(kāi)短評(píng)的url地址:

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


我們想要獲取以下內(nèi)容:


-用戶名稱

-評(píng)分

-短評(píng)內(nèi)容



3)URL解析


要想獲取數(shù)據(jù),我們先來(lái)分析一下URL。


4)發(fā)送請(qǐng)求,獲取響應(yīng)

根據(jù)url,我們可以發(fā)送請(qǐng)求了,注意攜帶cookie。



先來(lái)爬一頁(yè),看看結(jié)果。


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)定位信息


從圖中,我們可以看到對(duì)應(yīng)的標(biāo)簽和屬性。


利用xpath,我們可以很輕松地定位到我們想要的信息。推薦《6節(jié)課學(xué)會(huì)python爬蟲(chóng)》,里邊講解得很好。


先定位到,每一頁(yè)的“20個(gè)短評(píng)”對(duì)應(yīng)的xml位置。



再遍歷,每一個(gè)短評(píng)內(nèi)容。



結(jié)合代碼來(lái)看一下。


item_list?=?[]html?=?etree.HTML(reponse.content.decode()) div_list?=?html.xpath('//*[@id="comments"]//div[@class="comment"]')#?定位大塊 for?div?in?div_list:#?遍歷每一條信息item?=?{}#?./?注意從當(dāng)前節(jié)點(diǎn),向下獲取 # 用戶姓名/用戶主頁(yè)的url/短評(píng)內(nèi)容/評(píng)分 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)保存結(jié)果


上邊,已經(jīng)把每一條數(shù)據(jù),整理成一個(gè)字典。然后,把字典放在一個(gè)大的列表里。



這樣,我們可以很輕松的把數(shù)據(jù)導(dǎo)出為csv文件。


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



2 詞云可視化

1)jieba分詞


參考博客:

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


結(jié)巴分詞 是針對(duì)字符串進(jìn)行處理的,分詞后 會(huì)返回一個(gè)列表或者迭代器,你需要用 字符串的join方法,把詞語(yǔ)列表 重新拼接成一個(gè)字符串,然后把內(nèi)容給到 wordcloud 生成詞云。


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


2)詞云展示


創(chuàng)建一個(gè)詞云對(duì)象,添加一些基本設(shè)置。比如,中文字體,背景圖片,停用詞等等。然后,根據(jù)上文中的 text,生成詞云。


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


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')??#?背景圖#?詞云的一些參數(shù)設(shè)置 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('結(jié)果.jpg') print('生成詞云成功!')


看一下高頻詞的結(jié)果。?


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


看一下詞云。

總結(jié)來(lái)了


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



我把源文件及相關(guān)數(shù)據(jù)都打包好了,后臺(tái)回復(fù)【哪吒】,一鍵提取。


這個(gè)小例子,挺基礎(chǔ)的,適合入門(mén)的同學(xué),但知識(shí)點(diǎn)也挺多的。


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

??歡迎長(zhǎng)按圖片識(shí)別二維碼關(guān)注~

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。