亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

充氣娃娃什么感覺?Python 告訴你!

系統(tǒng) 2428 0

點(diǎn)擊“ 開發(fā)者技術(shù)前線 ”,選擇“星標(biāo)”

在看|星標(biāo)|留言,? 真愛


充氣娃娃什么感覺?Python 告訴你!_第1張圖片

授權(quán)來自公眾號(hào):裸睡的豬(ID:IT-Pig)


一、需求背景

在實(shí)際開發(fā)過程中,在我們動(dòng)手開發(fā)之前,都是由產(chǎn)品經(jīng)理為我們(測試、前端、后端、項(xiàng)目經(jīng)理等)先講解一下需求,我們了解了需求之后,才開始一起來討論技術(shù)方案。
充氣娃娃什么感覺?Python 告訴你!_第2張圖片
我們自己實(shí)現(xiàn)一些小功能時(shí)同樣需要討論需求,也就是告訴別人我們?yōu)槭裁匆鲞@個(gè)東西?或者我們想利用這款產(chǎn)品解決什么問題。

我們常常看到一些有關(guān)充氣娃娃的表情包和圖片或新聞,但是這種東西很少會(huì)像一些小視頻一些相互交流,大家可能都是偷摸玩耍。所以豬哥相信其實(shí)大部分同學(xué)并沒有親身體驗(yàn)過充氣娃娃到底是什么感覺(包括豬哥),所以豬哥很好奇究竟是什么一種體驗(yàn)?真的如傳言中那樣爽嗎?
充氣娃娃什么感覺?Python 告訴你!_第3張圖片

二、功能描述

基于很多人沒有體驗(yàn)過充氣娃娃是什么感覺,但是又很好奇,所以希望通過 爬蟲+數(shù)據(jù)分析 的方式直觀而真實(shí)的告訴大家(下圖為成品圖)。
充氣娃娃什么感覺?Python 告訴你!_第4張圖片

三、技術(shù)方案

為了實(shí)現(xiàn)上面的需求以及功能,我們來討論下具體的技術(shù)實(shí)現(xiàn)方案:

  1. 分析某東評論數(shù)據(jù)請求

  2. 使用requests庫抓取某東的充氣娃娃評論

  3. 使用詞云做數(shù)據(jù)展示

四、技術(shù)實(shí)現(xiàn)

上篇文章中就給大家說過,今天我們以某東商品編號(hào)為: 1263013576 的商品為對象,進(jìn)行數(shù)據(jù)分析,我們來看看詳細(xì)的技術(shù)實(shí)現(xiàn)步驟吧!

本教程只為學(xué)習(xí)交流,不得用于商用獲利,后果自負(fù)!
如有侵權(quán)或者對任何公司或個(gè)人造成不利影響,請告知?jiǎng)h除

1.分析并獲取評論接口的URL

第一步:打開某東的商品頁,搜索你想研究的商品。
充氣娃娃什么感覺?Python 告訴你!_第5張圖片
第二步:我們在頁面中鼠標(biāo)右鍵選擇檢查(或F12)調(diào)出瀏覽器的調(diào)試窗口。
充氣娃娃什么感覺?Python 告訴你!_第6張圖片
第三步:調(diào)出瀏覽器后點(diǎn)擊評論按鈕使其加載數(shù)據(jù),然后我們點(diǎn)擊network查看數(shù)據(jù)。
充氣娃娃什么感覺?Python 告訴你!_第7張圖片
第四步:查找加載評論數(shù)據(jù)的請求url,我們可以使用某條評論中的一段話,然后在調(diào)試窗口中搜索。
充氣娃娃什么感覺?Python 告訴你!_第8張圖片
充氣娃娃什么感覺?Python 告訴你!_第9張圖片
經(jīng)過上面4步分析,我們就拿到了京東評論數(shù)據(jù)的接口:https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

productPageComments:看這個(gè)名字就知道是產(chǎn)品頁評論

2.爬取評論數(shù)據(jù)

拿到評論數(shù)據(jù)接口url之后,我們就可以開始寫代碼抓取數(shù)據(jù)了。一般我們會(huì)先嘗試抓取一條數(shù)據(jù),成功之后,我們再去分析如何實(shí)現(xiàn)大量抓取。

上一篇我們已經(jīng)講解了如何使用requests庫發(fā)起http/s請求,我們來看看代碼
充氣娃娃什么感覺?Python 告訴你!_第10張圖片
但是在打印的結(jié)果中數(shù)據(jù)卻是空?為何瀏覽器請求成功,而我們的代碼卻請求不到數(shù)據(jù)呢?難道我們遇到了反爬?這種情況下如何解決?

大家在遇到這種情況時(shí),回到瀏覽器的調(diào)試窗口,查看下瀏覽器發(fā)起的請求頭,因?yàn)榭赡転g覽器請求時(shí)攜帶了什么請求頭參數(shù)而我們代碼中沒有。
充氣娃娃什么感覺?Python 告訴你!_第11張圖片
果然,我們在瀏覽器頭中看到了有兩個(gè)請求頭 Referer User-Agent ,那我們先把他們加到代碼的請求頭中,再試試!
充氣娃娃什么感覺?Python 告訴你!_第12張圖片

3.數(shù)據(jù)提取

我們對爬取的數(shù)據(jù)分析發(fā)現(xiàn),此數(shù)據(jù)為jsonp跨域請求返回的json結(jié)果,所以我們只要把前面的 fetchJSON_comment98vv4646( 和最后的 ) 去掉就拿到j(luò)son數(shù)據(jù)了。

充氣娃娃什么感覺?Python 告訴你!_第13張圖片

將json數(shù)據(jù)復(fù)制到j(luò)son格式化工具中或者在Chrome瀏覽器調(diào)試窗口點(diǎn)擊 Preview 也可以看到,json數(shù)據(jù)中有一個(gè)key為 comments 的值便是我們想要的評論數(shù)據(jù)。
充氣娃娃什么感覺?Python 告訴你!_第14張圖片
我們再對comments值進(jìn)行分析發(fā)現(xiàn)是一個(gè)有多條數(shù)據(jù)的列表,而列表里的每一項(xiàng)就是每個(gè)評論對象,包含了評論的內(nèi)容,時(shí)間,id,評價(jià)來源等等信息,而其中的 content 字段便是我們在頁面看到的用戶評價(jià)內(nèi)容。
充氣娃娃什么感覺?Python 告訴你!_第15張圖片
那我們來用代碼將每個(gè)評價(jià)對象的 content 字段提取并打印出來
充氣娃娃什么感覺?Python 告訴你!_第16張圖片

4.數(shù)據(jù)保存

數(shù)據(jù)提取后我們需要將他們保存起來,一般保存數(shù)據(jù)的格式主要有:文件、數(shù)據(jù)庫、內(nèi)存這三大類。今天我們就將數(shù)據(jù)保存為txt文件格式,因?yàn)椴僮魑募鄬唵瓮瑫r(shí)也能滿足我們的后續(xù)數(shù)據(jù)分析的需求。
充氣娃娃什么感覺?Python 告訴你!_第17張圖片
然后我們查看一下生成的文件內(nèi)容是否正確
充氣娃娃什么感覺?Python 告訴你!_第18張圖片

5.批量爬取

再完成一頁數(shù)據(jù)爬取、提取、保存之后,我們來研究一下如何批量抓取?

做過web的同學(xué)可能知道,有一項(xiàng)功能是我們必須要做的,那便是分頁。何為分頁?為何要做分頁?

我們在瀏覽很多網(wǎng)頁的時(shí)候常常看到“下一頁”這樣的字眼,其實(shí)這就是使用了分頁技術(shù),因?yàn)橄蛴脩粽故緮?shù)據(jù)時(shí)不可能把所有的數(shù)據(jù)一次性展示,所以采用分頁技術(shù),一頁一頁的展示出來。

讓我們再回到最開始的加載評論數(shù)據(jù)的url:

https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

我們可以看到鏈接里面有兩個(gè)參數(shù) page=0&pageSize=10 ,page表示當(dāng)前的頁數(shù),pageSize表示每頁多少條,那這兩個(gè)數(shù)據(jù)直接去數(shù)據(jù)庫limit數(shù)據(jù)。

老司機(jī)一眼便可以看出這就是分頁的參數(shù),但是有同學(xué)會(huì)說:如果我是老司機(jī)還干嘛看你的文章?所以 我教大家如何來找到這個(gè)分頁參數(shù)

回到某東的商品頁,我們將評價(jià)頁面拉到最底下,發(fā)現(xiàn)有分頁的按鈕,然后我們在調(diào)試窗口清空之前的請求記錄。
充氣娃娃什么感覺?Python 告訴你!_第19張圖片
清空之前的請求記錄之后,我們點(diǎn)擊上圖紅框分頁按鈕的數(shù)字2,代表這第二頁,然后復(fù)制第一條評價(jià)去調(diào)試窗口搜索,最后找到請求鏈接。
充氣娃娃什么感覺?Python 告訴你!_第20張圖片
然后我們點(diǎn)擊 Headers 查看第二頁請求數(shù)據(jù)的url

充氣娃娃什么感覺?Python 告訴你!_第21張圖片

然后我們比較第一頁評價(jià)與第二頁評價(jià)的url有何區(qū)別
充氣娃娃什么感覺?Python 告訴你!_第22張圖片
這里也就驗(yàn)證了豬哥的猜想:page表示當(dāng)前的頁數(shù),pageSize表示每頁多少條。而且我們還能得出另一個(gè)結(jié)論:第一個(gè)page=0,第二頁page=1 然后依次往后。有同學(xué)會(huì)問:為什么第一頁不是1,而是0,因?yàn)樵跀?shù)據(jù)庫中一般的都是從0開始計(jì)數(shù),編程行業(yè)很多數(shù)組列表都是從0開始計(jì)數(shù)。

好了,知道分頁規(guī)律之后,我們只要在每次請求時(shí)將page參數(shù)遞增不就可以批量抓取了嗎?我們來寫代碼吧!
充氣娃娃什么感覺?Python 告訴你!_第23張圖片
簡單講解一下做的改動(dòng):

  1. spider_comment 方法增加入?yún)? page

    頁數(shù),然后在url中增加占位符,這樣就可以動(dòng)態(tài)修改url,爬取指定的頁數(shù)。

  2. 增加一個(gè) batch_spider_comment 方法,循環(huán)調(diào)用 spider_comment 方法,暫定爬取100頁。

  3. batch_spider_comment 方法的for循環(huán)中設(shè)置了一個(gè)隨機(jī)的休眠時(shí)間,意在模擬用戶瀏覽,防止因?yàn)榕廊√l繁被封ip。

爬取完成之后檢查成果
充氣娃娃什么感覺?Python 告訴你!_第24張圖片

6.數(shù)據(jù)清洗

數(shù)據(jù)成功保存之后我們需要對數(shù)據(jù)進(jìn)行分詞清洗,對于分詞我們使用著名的分詞庫 jieba
首先是安裝jieba庫:

pip3 install jieba

充氣娃娃什么感覺?Python 告訴你!_第25張圖片
當(dāng)然這里你還可以對一些介詞等無效詞進(jìn)行剔除,這樣可以避免無效數(shù)據(jù)。

7.生成詞云

生成詞云我們需要用到 numpy matplotlib wordcloud Pillow 這幾個(gè)庫,大家先自行下載。 matplotlib 庫用于圖像處理, wordcloud 庫用于生成詞云。

充氣娃娃什么感覺?Python 告訴你!_第26張圖片

注意:font_path是選擇字體的路徑,如果不設(shè)置默認(rèn)字體可能不支持中文,豬哥選擇的是Mac系統(tǒng)自帶的宋體字!

最終結(jié)果:
充氣娃娃什么感覺?Python 告訴你!_第27張圖片
我們來看看全代碼

充氣娃娃什么感覺?Python 告訴你!_第28張圖片

五、總結(jié)

因考慮新手的友好性,文章篇幅較長,詳細(xì)的介紹了從需求到技術(shù)分析、爬取數(shù)據(jù)、清洗數(shù)據(jù)、最后的分析數(shù)據(jù)。我們來總結(jié)一下本篇文章學(xué)到的東西吧:

  1. 如何分析并找出加載數(shù)據(jù)的url

  2. 如何使用requests庫的headers解決 Referer User-Agent 反扒技術(shù)

  3. 如何找出分頁參數(shù)實(shí)現(xiàn)批量爬取

  4. 設(shè)置一個(gè)爬蟲間隔時(shí)間防止被封ip

  5. 數(shù)據(jù)的提取與保存到文件

  6. 使用jieba庫對數(shù)據(jù)分詞清洗

  7. 使用wordcloud生成指定形狀的詞云

這是一套完整的數(shù)據(jù)分析案例,希望大家能自己動(dòng)手嘗試,去探索更多有趣的案例,做個(gè)有趣的人~

充氣娃娃什么感覺?Python 告訴你!_第29張圖片


在公眾號(hào),在后臺(tái)回復(fù)關(guān)鍵字: 666 ,可以獲取一份程序員大禮包!

---END---

選擇” 開發(fā)者技術(shù)前線 ?“星標(biāo) ,內(nèi)容一觸即達(dá)。點(diǎn)擊原文更多驚喜!

開發(fā)者技術(shù)前線 ?匯集技術(shù)前線快訊和關(guān)注行業(yè)趨勢,大廠干貨,是開發(fā)者經(jīng)歷和成長的優(yōu)秀指南。


歷史推薦


逆襲FLutter? Facebook 發(fā)布全新跨平臺(tái)引擎 Hermes!

字節(jié)跳動(dòng)高工面試記,已拿 Offer 入職!

字節(jié)跳動(dòng) CEO 張一鳴炮轟 HR , “按這要求我自己都進(jìn)不來!”

充氣娃娃什么感覺?Python 告訴你!_第30張圖片

點(diǎn)個(gè)在看,解鎖更多驚喜!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎4hu永久免费视频大全 | 中文字幕日本精品一区二区三区 | 日韩欧美一级毛片视频免费 | 亚洲最大色网站 | 中文字幕在亚洲第一在线 | 国内精品自在自线在免费 | 成人影院免费在线观看 | 最新国产精品好看的国产精品 | 国产精品久久久久久久久免费 | 四虎永久在线观看免费网站网址 | 玖玖精品在线观看 | 91不卡 | 国产一级理论免费版 | 国产99精品在线观看 | 一级在线视频 | 色片免费 | 伊人99热 | 欧美人成毛片在线播放 | 夜夜操女人 | 亚洲欧美日韩中文字幕在线一区 | 日本狠狠操| 高清一级毛片一本到免费观看 | 国产91系列 | 日本久久久久久久中文字幕 | 久久爱www人成| 亚洲欧美中文字幕在线网站 | 美女黄频视频大全免费高清 | 国产乱码精品一区二区 | 一区二区三区亚洲 | 妖精视频国产 | 欧美激情午夜 | 欧美整片在线观看 | 色欧洲 | 视频三区精品中文字幕 | 日日天日日夜日日摸 | 九九视频在线观看视频 | 亚洲精品一区国产二区 | 国产精品四虎视频一区 | 欧美综合国产 | 男人私人影院免费看视频 | 夜夜爽日日澡人人添 |