發(fā)布時(shí)間:2022-03-20
欄目:電商資訊
京東商品評(píng)論太多(帶你一鍵爬取京東商品評(píng)論)
一、項(xiàng)目說(shuō)明

1.項(xiàng)目背景
一天,一朋友扔給我一個(gè)鏈接s://item.jd.com/.html,讓我看看這個(gè)歌商品的所有評(píng)論怎么抓取,我打開(kāi)一看,好家伙,竟然有近300萬(wàn)條評(píng)論,不是一個(gè)小數(shù)目啊。
京東某商品評(píng)論
但是仔細(xì)一看,原來(lái)有234萬(wàn)+的評(píng)論是默認(rèn)好評(píng),還是有少部分是有價(jià)值的評(píng)價(jià)的。
經(jīng)過(guò)進(jìn)一步觀察,可以看到
商品評(píng)論翻頁(yè)
顯然,網(wǎng)頁(yè)中顯示的只有100頁(yè)數(shù)據(jù),每頁(yè)顯示10條,通常可以用selenium點(diǎn)擊每一頁(yè)然后獲取,但是這樣效率是不是太低了呢?還是直接用requests來(lái)得更直接,很多情況下網(wǎng)頁(yè)顯示的數(shù)據(jù)是請(qǐng)求得到的JSON數(shù)據(jù)在網(wǎng)頁(yè)上渲染而顯示出來(lái)的,京東的評(píng)論會(huì)不會(huì)也是這樣呢?好,說(shuō)干就干!!!
2.項(xiàng)目環(huán)境
這個(gè)小項(xiàng)目使用Python爬取,不需要太多的配置,只需要安裝requests庫(kù)就足夠,我相信對(duì)于很多玩爬蟲(chóng)的小伙伴來(lái)說(shuō)這個(gè)庫(kù)肯定是必備的,沒(méi)裝requests不要告訴我你會(huì)爬蟲(chóng)。
二、項(xiàng)目實(shí)施
1.項(xiàng)目分析
上面說(shuō)到,網(wǎng)頁(yè)中的數(shù)據(jù)很多都是通過(guò)渲染請(qǐng)求到的JSON數(shù)據(jù)得到的,那么我們就來(lái)看看京東是不是也是這樣的。利用瀏覽器的審計(jì)工具,選擇Network欄,可以看到
商品評(píng)論總體概況
仔細(xì)查看,尋找鏈接中于評(píng)論(comment)有關(guān)的鏈接,可以找到其中的一個(gè)請(qǐng)求鏈接s://club.jd.com/comment/productCommentSummaries.action?referenceIds=&callback=jQuery1951081&_=,如上圖。這是關(guān)于該商品評(píng)論的整體情況的,可以看到具體的總評(píng)論數(shù)、默認(rèn)好評(píng)數(shù)、好評(píng)數(shù)、好評(píng)率等,雖然不是我們想要的,但是也近了一步,繼續(xù)尋找,又找到了一條帶comment字眼的鏈接s://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,如圖
評(píng)論詳情概覽
后邊有10條評(píng)論,應(yīng)該就是該商品對(duì)應(yīng)的第一頁(yè)評(píng)論了,點(diǎn)開(kāi)查看,如下:
評(píng)論數(shù)據(jù)詳情
對(duì)比網(wǎng)頁(yè)中顯示的評(píng)論可以看到,這就就是我們要找的東西。
由于得到的數(shù)據(jù)不是標(biāo)準(zhǔn)格式的JSON,所以我選擇使用正則表達(dá)式來(lái)獲取相關(guān)的內(nèi)容。
現(xiàn)在還有一個(gè)問(wèn)題,我們只獲得了1頁(yè)評(píng)論,那怎么獲取所有的評(píng)論呢?會(huì)不會(huì)秘密隱藏在鏈接中呢?
對(duì)于鏈接s://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,顯然有很多參數(shù),不難找到,有參數(shù)productId和page,假如猜得不錯(cuò),應(yīng)該是商品id和評(píng)論頁(yè)數(shù)(從0開(kāi)始),這時(shí),換一個(gè)商品id,那么商品id怎么獲得呢?舉個(gè)例子,在鏈接s://item.jd.com/.html中,商品id就是。另找一個(gè)商品,將其商品id替換掉評(píng)論鏈接中的productId,獲得的正是該商品的第一頁(yè)評(píng)論。現(xiàn)在嘗試翻頁(yè),逐漸增大page參數(shù)的值,如1、2、3…,也能獲取到對(duì)應(yīng)頁(yè)的評(píng)論數(shù)據(jù)。
現(xiàn)在分析工作已經(jīng)做的差不多了,可以開(kāi)始碼代碼了。
2.代碼實(shí)現(xiàn)
導(dǎo)入模塊和定義常量
import?reimport?timeimport?csvimport?osimport?requestsimport?html#?設(shè)置請(qǐng)求頭headers?=?{'cookie':?'shshshfp=22ddd21be92463ffa35684d;?shshshfpa=ab283f84-c40f-9710-db89-84a8d3366a81-;?__jda=.....1;?__jdv=|direct|-|none|-|;?__jdc=;?shshshfpb=bUe7tI9%2FOOaJKd7vP0EtSOg%3D%3D;?__jdu=;?areaId=22;?ipLoc-djd=22-1977-1980-0;?3AB9D23F7A4B3C9B=7XEQD4BFTGEH44EK7LN7HLFCHJW6W2NS5VJOQOCHABZVI7LXJJIW3K2IX5MTPZ4TBERBLY6TRQR5CA3S3IYVLQ2JGI;?jwotest_product=99;?shshshsID=a7457cee6a4a9fa285fe2cff44c6bd17_4_;?__jdb=.4.|1.;?JSESSIONID=8C21549A613B83F0CB86EF1F38FD63D3.s1','sec-fetch-dest':?'document','sec-fetch-mode':?'navigate','sec-fetch-site':?'none','sec-fetch-user':?'?1','upgrade-insecure-requests':?'1','User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/80.0.3987.162?Safari/537.36'}
導(dǎo)入需要使用到的模塊,并且定義請(qǐng)求頭用于請(qǐng)求,減少被反爬的概率。
下一篇:京東直播不為帶貨而帶貨
文章地址:http://m.meyanliao.com/article/online/10765.html

- 1互聯(lián)網(wǎng)對(duì)傳統(tǒng)企業(yè)的沖擊有多大
- 2美團(tuán)再因不正當(dāng)競(jìng)爭(zhēng)敗訴新反法互聯(lián)網(wǎng)專條首次適用外賣領(lǐng)域!
- 32021互聯(lián)網(wǎng)十件大事對(duì)不起賈躍亭你只能排第四
- 4互聯(lián)網(wǎng)宣傳做的就是用戶體驗(yàn)
- 5互聯(lián)網(wǎng)創(chuàng)業(yè)到底需要怎樣的能力
- 6適合上班族的25個(gè)副業(yè)(適合上班族的互聯(lián)網(wǎng)副業(yè))
- 7互聯(lián)網(wǎng)的世界沒(méi)有永遠(yuǎn)的敵人只有永遠(yuǎn)的利益
- 8押?jiǎn)h進(jìn)駐天線貓助力互聯(lián)網(wǎng)數(shù)碼產(chǎn)品寄存行業(yè)經(jīng)濟(jì)持續(xù)發(fā)展
- 9互聯(lián)網(wǎng)公司如何做好品牌定位
- 102021年互聯(lián)網(wǎng)金融發(fā)展回顧冬去春欲來(lái)改弦當(dāng)更張