python娃娃_充气娃娃?Python告诉你到底有多爽......
上某東的時候,突然給我彈了一個充氣娃娃的廣告,于是就點進(jìn)去就看了一下評論,全是神評論啊。所以我就想著把大神們的評論們扒拉下來仔細(xì)瞅瞅,于是這篇文章就誕生了 ,純屬學(xué)習(xí)啊,不要想入非非啊,還有,不喜勿噴!
按照軟件設(shè)計流程來:
需求分析-功能描述-技術(shù)文檔-詳細(xì)設(shè)計-編碼-測試-交付-驗收-后期維護(hù)
1.需求分析:
首先我先找了某東最火娃娃,里面評論近乎7萬條,這里面神評論一定不少。所以決定從這個里面扒拉我們想要獲取的數(shù)據(jù)
2.功能描述充氣娃娃這種東西,一般大家都在網(wǎng)上見得多,所以玩起來到底感覺怎么樣。大家有可能知道,但是我不知道 。所以我只能分析一下大伙的使用感受。這次我將獲取到的數(shù)據(jù)統(tǒng)計以詞云的方式呈現(xiàn)。這樣呈現(xiàn)的數(shù)據(jù)比傳統(tǒng)的統(tǒng)計圖更直觀且更有藝術(shù)感。
3.技術(shù)文檔
1.使用requests獲取某東上的所有評論;
2.使用jieba將獲取到的評論切割成單個詞語,為詞云做鋪墊;
3.使用wordcloud生成詞云圖用以展示數(shù)據(jù)。
4.詳細(xì)設(shè)計
如上圖所示,首先我們F12或者右鍵打開開發(fā)者模式,然后找到Network下面的All,然后隨便復(fù)制一句評論在下面ctrl+F復(fù)制搜索。找到這句評論所在的位置。
找到評論的我所在位置之后,點擊左邊的Headers,如圖上所示的Request URL就是我們所要爬取所有評論的link。
5.編碼
找到評論所在的link之后,我們就可以上手coding了。評論有近七萬條,每頁只有十條評論,所以就是說有近七千多頁。但是不要慌,我們先爬取一頁數(shù)據(jù)看看,只要這一頁成功了,剩下的頁數(shù)問題都不大。
首先使用requests獲取數(shù)據(jù)(requests的不會用的童鞋可自行百度哈)
但是,似乎,but沒有拿到數(shù)據(jù),什么鬼!
分析之后,確定是少了什么東西,首先我們來看看瀏覽器。
發(fā)現(xiàn)了嗎?
就是少了這個Refer和UserAgent,回到代碼繼續(xù)完善。。。
可以看到接入Refer和UserAgent之后已經(jīng)拿到了我們想要爬取的數(shù)據(jù)。
但是這個json格式的數(shù)據(jù)看起來怪怪的,怪在哪里呢?前面多了這些fetchJSON_comment98vv7990(,后面多了);
所以我們首先要去掉這些對我們無益的東西來拿到正確的json數(shù)據(jù)
通過改良,拿到了我們想要的數(shù)據(jù)。但是我們想要的只是評論啊,這里怎么還有好多評論之外的東西呢?我們返回瀏覽器繼續(xù)查看
通過對比發(fā)現(xiàn)我們要的評論是在comments下面的content里面,按照這個邏輯,我們首先要進(jìn)入到comments里面,然后在comments里面遍歷出所有的content。
然后將數(shù)據(jù)保存我們命名的jd_comments.txt文件中。(本來獲取到的數(shù)據(jù)是要放在數(shù)據(jù)庫里面的,咱們在這里將它放入txt文檔是為了后面詞云的使用)
對比一下,看寫入到file里面的內(nèi)容與我們想要爬取的內(nèi)容是否一致
接下來似乎單頁內(nèi)容的爬取已經(jīng)大功告成了,現(xiàn)在我們舉一反三來試試多頁評論的爬取。
首先我們按照上面的步驟再次復(fù)制一段評論
然后通過同樣的方法找出它的link對它們進(jìn)行對比
對比發(fā)現(xiàn)除了它們的page不一樣之外其余都是一樣的。
也就是說它的分頁是按照pagesize = 10 的每頁十條記錄和page = 0,1,2,3,。。。進(jìn)行分頁顯示的。
每頁十條記錄顯示是不變的,變的是不斷遞增的page,所以我們要把這個page設(shè)置為一個變量,讓他循環(huán)增加。
這里說明一下
對get_spider_comments方法加入變量page,當(dāng)我們指定page的值時,它就可以獲取固定頁面的評論。
在batch_spider_comments方法中sleep方法,用來模擬用戶瀏覽,防止因為爬取太頻繁導(dǎo)致ip被封。
首先我們爬取了100頁的數(shù)據(jù),可以看到爬取了984行。證明我們的多頁爬取也是沒有問題的。
為了更加直觀方便的看出評論的內(nèi)容,我們決定使用詞云來進(jìn)行展示。
首先需要我們對jieba和wordcloud進(jìn)行了解,使用pip install jieba對jieba庫進(jìn)行安裝。然后用jieba對獲取到的評論進(jìn)行分詞。
然后使用pip install wordcloud再安裝wordcloud。最后用generate方法生成詞云圖。
說明一下,默認(rèn)生成的詞云圖是正方形的,但是我在這里引入了imageio的 imread方法 以獲取原始圖片ball.jpg的參數(shù)
然后使用mask=mask 傳遞形狀參數(shù),所以最后我們獲取到的就是一張圓形的詞云圖
所以之后大家可以按照自己的意愿來設(shè)置圖片的形狀。
希望大家可以參考學(xué)習(xí),共同進(jìn)步!!
總結(jié)
以上是生活随笔為你收集整理的python娃娃_充气娃娃?Python告诉你到底有多爽......的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 化工网站开发_西部地区鼓励投资化工(石化
- 下一篇: python怎么输出小数部分_pytho