Ⅰ 蘇寧易購商品的主圖、細節圖、評論圖可以用下圖高手批量保存嗎
應該是可以的,先把蘇寧易購商品鏈接復制到下圖高手中,勾選需要的選項,單擊立即下載,就可以將圖片批量保存下來了
Ⅱ 購物網站的購物車是用什麼技術來存儲數據的。
如果你登陸了京東帳號,然後把商品放入購物車,這時清理自己電腦的cookie是沒有用的,商品是儲存在京東帳號的購物車里。
如果沒有登陸京東帳號,把商品放入購物車,清理電腦上的cookie才有用
Ⅲ 從哪些方面可了解買家對商品的評價
了解買家對商品的評價,可以從這幾個方面:看評分,看追加評價,看買家秀,看鑽級和皇冠級的買家評價。一般情況下重點看中評或者差評,好評就不要看了,虛的太多,30天賣出259件,約等於一天10件,如果價值低還好,價值高了,就必須懷疑了。
電商:
電子商務,簡稱電商,是指在互聯網、內部網和增值網上以電子交易方式進行交易活動和相關服務活動,使傳統商業活動各環節的電子化、網路化。電子商務包括電子貨幣交換、供應鏈管理、電子交易市場、網路營銷、在線事務處理、電子數據交換(EDI)、存貨管理和自動數據收集系統。在此過程中,利用到的信息技術包括:互聯網、外聯網、電子郵件、資料庫、電子目錄和行動電話。
Ⅳ 服務期的存儲技術分類哪兩大類
1、按用途
按照倉庫在商品流通過程中所起的作用可以分為以下幾種:
(1)批發倉庫
批發倉庫主要是用於儲存從采購供應庫場調進或在當地收購的商品,這一類倉庫一般貼近商品銷售市場,規模同采購供應倉庫相比一般要小一些,鉈既從事批發供貨,也從事拆零供貨業務。
(2)采購供應倉庫
采購供應倉庫主要用於集中儲存從生產部門收購的和供國際間進出口的商品,一般這一類的倉庫庫場設在商品生產比較集中的大、中城市,或商品運輸樞紐的所在地。
(3)加工倉庫
前面在講倉庫的功能的之後已經講過倉庫的加工延遲功能,一般具有產品加工能力的倉庫被成為加工倉庫。
(4)中轉倉庫
中轉倉庫處於貨物運輸系統的中間環節,存放那些等待轉運的貨物,一般貨物在此僅做臨時停放,這一類倉庫一般設置在公路、鐵路的場站和水路運輸的港口碼頭附近,以方便貨物在此等待裝運。
(5)零售倉庫
零售倉庫主要用於為商業零售業做短期儲貨,一般是提供店面銷售,零售倉庫的規模較小,所儲存物資周轉快。
(6)儲備倉庫
這類倉庫一般由國家設置,以保管國家應急的儲備物資和戰備物資。貨物在這類倉庫中儲存時間一般比較長,並且儲存的物資會定期更新,以保證物資的質量。
(7)保稅倉庫
保稅倉庫是指為國際貿易的需要,設置在一國國土之上,但在海關關境以外的倉庫。外國企業的貨物可以免稅進出這類倉庫而辦理海關申報手續,而且經過批准後,可以在保稅倉庫內對貨物進行加工、存儲等等作業。
2、按貨物特性
(1)原料倉庫:原材料倉庫是用來儲存生產所用的原材料的,這類倉庫一般比較大。
(2)產品倉庫:產品倉庫的作用是存放已經完成的產品,但這些產品還沒有進入流通區域,這種倉庫一般是附屬於產品生產工廠。
(3)冷藏倉庫:它是用來儲藏那些需要進行冷藏儲存的貨物,一般多是農副產品、葯品等等對於儲存溫度有要求的物品。
(4)恆溫倉庫:恆溫倉庫和冷藏倉庫一樣也是用來儲存對於儲藏溫度有要求的產品。
(5)危險品倉庫:危險品倉庫從字面上就比較容易理解它是用於儲存危險品的,危險品由於可能對於人體以及環境造成危險,因此在此類物品的儲存方面一般會有特定的要求,例如許多化學用品就是危險品,他們的儲存都有專門的條例。
(6)水面倉庫:象圓木、竹排等能夠在水面上漂浮的物品來說,他們可以儲存在水面。
(4)商品評論用啥技術存儲擴展閱讀:
倉庫的功能:
1、儲存和保管功能
倉庫具有一定的空間,用於儲存物品,並根據儲存物品的特性配備相應的設備,以保持儲存物品完好性。例如:儲存揮發性溶劑的倉庫,必須設有通風設備,以防止空氣中揮發性物質含量過高而引起爆炸。
貯存精密儀器的倉庫,需防潮、防塵、恆溫,因此,應設立空調、恆溫等設備。在倉庫作業時,還有一個基本要求,就是防止搬運和堆放時碰壞、壓壞物品。從而要求搬運器具和操作方法的不斷改進和完善,使倉庫真正起到貯存和保管的作用。
2、調節供需的功能
創造物質的時間效用是物流的兩大基本職能之一,物流的這一職能是由物流系統的倉庫來完成的。現代化大生產的形式多種多樣,從生產和消費的連續來看,每種產品都有不同的特點,
有些產品的生產是均衡的,而消費是不均衡的,還有一些產品生產是不均衡的,而消費卻是均衡不斷地進行的。要使生產和消費協調起來,這就需要倉庫來起「蓄水池」的調節作用。
3、調節貨物運輸能力
各種運輸工具的運輸能力是不一樣的。船舶的運輸能力很大,海運船一般是萬噸級,內河船舶也有幾百噸至幾千噸的。火車的運輸能力較小,每節車皮能裝運30~60t,一列火車的雲量最多大幾千噸。
汽車的運輸能力很小,一般每輛車裝4~10t。他們之間的運輸銜接是很苦難的,這種運輸能力的差異,也是通過倉庫進行調節和銜接的。
4、流通配送加工的功能
現代倉庫的功能已處在由保管型向流通型轉變的過程之中,即倉庫由貯存、保管貨物的中心向流通、銷售的中心轉變。倉庫不僅要有貯存、保管貨物的設備,
而且還要增加分揀、配套、捆綁、流通加工、信息處理等設置。這樣,即擴大了倉庫的經營范圍,提高了物質的綜合利用率,又方便了消費,提高了服務質量。
5、信息傳遞功能
伴隨著以上功能的改變,導致了倉庫對信息傳遞的要求。在處理倉庫活動有關的各項事務時,需要依靠計算機和互聯網,通過電子數據交換(EDI)和條形碼技術來提高倉儲物品信息的傳輸速度,
及時而又准確地了解倉儲信息,如倉庫利用水平、進出庫的頻率、倉庫的運輸情況、顧客的需求以及倉庫人員的配置等。
6、產品生命周期的支持功能
根據美國物流管理協會2002年1月發布的物流定義:在供應鏈運作中,以滿足客戶要求為目的,對貨物、服務和相關信息在產出地和銷售地之間實現高效率和低成本的正向和理想逆向的流動於儲存所進行的計劃執行和控制的過程。
可見現代物流包括了產品從「生」到「死」的整個生產、流通和服務的過程。因此,倉儲系統應對產品生命周期提供支持。
10分享
Ⅳ 什麼是雲存儲技術
雲存儲是在雲計算(cloud computing)概念上延伸和發展出來的一個新的概念,是指通過集群應用、網格技術或分布式文件系統等功能,將網路中大量各種不同類型的存儲設備通過應用軟體集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統。 當雲計算系統運算和處理的核心是大量數據的存儲和管理時,雲計算系統中就需要配置大量的存儲設備,那麼雲計算系統就轉變成為一個雲存儲系統,所以雲存儲是一個以數據存儲和管理為核心的雲計算系統。
雲存儲的兩個層面
雲存儲的兩個層面是作為雲計算支撐的存儲計算,主要涉及分布式存儲(如分布式文件系統、IPSAN、數據同步、復制)、數據存儲(如重復數據刪除、數據壓縮、數據編碼)和數據保護(如RAID、CDP、快照、備份與容災)等技術領域,如圖8-30所示,這在第6章中已有所介紹。和雲安全技術一樣,雲存儲技術也需要利用現有的所有存儲技術針對雲計算三層架構的各個環節採用適當的存儲技術,才能取得最佳效果,例如,對應不同需求,有時應該使用資料庫技術但有時卻應該使用LDAP技術,有些性能要求高的系統不能使用SAN或NAS,需直接使用基於RPC或Socket技術的並發文件系統,有些應用使用SAN成本太高等,這里不再做深入介紹。如圖8-31所示是一個採用NetApp FAS、思科 UCS和 VMWare vShpere 4技術打造的存儲系統,對上述兩種雲存儲技術和應用都有促進作用。雲存儲架構
分為兩類:一種是通過服務來架構;另一種是通過軟體或硬體設備來架構。
傳統的系統利用緊耦合對稱架構,這種架構的設計旨在解決HPC(高性能計算、超級運算)問題,現在其正在向外擴展成為雲存儲從而滿足快速呈現的市場需求。下一代架構已經採用了鬆弛耦合非對稱架構,集中元數據和控制操作,這種架構並不非常適合高性能HPC,但是這種設計旨在解決雲部署的大容量存儲需求。各種架構的摘要信息如下:
緊耦合對稱(TCS)架構
構建TCS系統是為了解決單一文件性能所面臨的挑戰,這種挑戰限制了傳統NAS系統的發展。HPC系統所具有的優勢迅速壓倒了存儲,因為它們需要的單一文件I/O操作要比單一設備的I/O操作多得多。業內對此的回應是創建利用TCS架構的產品,很多節點同時伴隨著分布式鎖管理(鎖定文件不同部分的寫操作)和緩存一致性功能。這種解決方案對於單文件吞吐量問題很有效,幾個不同行業的很多HPC客戶已經採用了這種解決方案。這種解決方案很先進,需要一定程度的技術經驗才能安裝和使用。
鬆弛耦合非對稱(LCA)架構
LCA系統採用不同的方法來向外擴展。它不是通過執行某個策略來使每個節點知道每個行動所執行的操作,而是利用一個數據路徑之外的中央元數據控制伺服器。集中控制提供了很多好處,允許進行新層次的擴展:
● 存儲節點可以將重點放在提供讀寫服務的要求上,而不需要來自網路節點的確認信息。
● 節點可以利用不同的商品硬體CPU和存儲配置,而且仍然在雲存儲中發揮作用。
● 用戶可以通過利用硬體性能或虛擬化實例來調整雲存儲。
● 消除節點之間共享的大量狀態開銷也可以消除用戶計算機互聯的需要,如光纖通道或infiniband,從而進一步降低成本。
● 異構硬體的混合和匹配使用戶能夠在需要的時候在當前經濟規模的基礎上擴大存儲,同時還能提供永久的數據可用性。
● 擁有集中元數據意味著,存儲節點可以旋轉地進行深層次應用程序歸檔,而且在控制節點上,元數據經常都是可用的。
Ⅵ 北大青鳥設計培訓:PHP應用中常用的9大緩存技術
一、全頁面靜態化緩存也就是將頁面全部生成html靜態頁面,用戶訪問時直接訪問的靜態頁面,而不會去走php伺服器解析的流程。
此種方式,在CMS系統中比較常見,比如dedecms;一種比較常用的實現方式是用輸出緩存:Ob_start()******要運行的代碼*******$content=Ob_get_contents();****將緩存內容寫入html文件*****Ob_end_clean();二、數據緩存顧名思義,就是緩存數據的一種方式;比如,商城中的某個商品信息,當用商品id去請求時,就會得出包括店鋪信息、商品信息等數據,此時就可以將這些數據緩存到一個php文件中,文件名包含商品id來建一個唯一標示;下一次有人想查看這個商品時,首先就直接調這個文件裡面的信息,而不用再去資料庫查詢;其實緩存文件中緩存的就是一個php數組之類;Ecmall商城系統裡面就用了這種方式;三、查詢緩存其實這跟數據緩存是一個思路,就是根據查詢語句來緩存;將查詢得到的數據緩存在一個文件中,下次遇到相同的查詢時,就直接先從這個文件裡面調數據,不會再去查資料庫;但此處的緩存文件名可能就需要以查詢語句為基點來建立唯一標示;按時間變更進行緩存就是對於緩存文件您需要設一個有效時間,在這個有效時間內,相同的訪問才會先取緩存文件的內容,但是超過設定的緩存時間,就需要重新從資料庫中獲取數據,並生產最新的緩存文件;比如,我將我們商城的首頁就是設置2個小時更新一次。
四、頁面部分緩存該種方式,是將一個頁面中不經常變的部分進行靜態緩存,而經常變化的塊不緩存,最後組裝在一起顯示;可以使用類似於ob_get_contents的方式實現,也可以利用類似ESI之類的頁面片段緩存策略,使其用來做動態頁面中相對靜態的片段部分的緩存。
該種方式可以用於如商城中的商品頁;五、Opcode緩存首先php代碼被解析為Tokens,然後再編譯為Opcode碼,最後執行Opcode碼,返回結果;所以,對於相同的php文件,第一次運行時可以緩存其Opcode碼,下次再執行這個頁面時,直接會去找到緩存下的opcode碼,直接執行最後一步,而不再需要中間的步驟了。
比較知名的是XCache、TurckMMCache、PHPAccelerator等。
六、按內容變更進行緩存這個也並非獨立的緩存技術,需結合著用;就是當資料庫內容被修改時,即刻更新緩存文件;比如,一個人流量很大的商城,商品很多,商品表必然比較大,這表的壓力也比較重;我們就可以對商品顯示頁進行頁面緩存;當商家在後台修改這個商品的信息時,點擊保存,我們同時就更新緩存文件;那麼,買家訪問這個商品信息時,實際問的是一個靜態頁面,而不需要再去訪問資料庫;試想,如果對商品頁不緩存,那麼每次訪問一個商品就要去資料庫查一次,如果有10萬人在線瀏覽商品,那伺服器壓力就大了;七、內存式緩存提到這個,可能大家想到的首先就是Memcached;memcached是高性能的分布式內存緩存伺服器。
一般的使用目的是,通過緩存資料庫查詢結果,減少資料庫訪問次數,以提高動態Web應用的速度、提高可擴展性。
它就是將需要緩存的信息,緩存到系統內存中,需要獲取信息時,直接到內存中取;比較常用的方式就是key_>value方式;connect($memcachehost,$memcacheport)ordie("Couldnotconnect");$memcache->set('key','緩存的內容');$get=$memcache->get($key);//獲取信息?>八、apache緩存模塊apache安裝完以後,是不允許被cache的。
佳音IT培訓http://www.kmbdqn.cn/認為如果外接了cache或squid伺服器要求進行web加速的話,就需要在htttpd.conf里進行設置,當然前提是在安裝apache的時候要激活mod_cache的模塊。
Ⅶ 數據挖掘 網購評論是真是假
來源 | 36大數據
當你在網上選購商品時,同類的商品成千上萬,哪些因素會影響你選購某件商品呢?商品評論一定是一個重要的參考吧。一般我們總會看看歷史銷量高不高,用戶評論好不好,然後再去下單。
過去不久的雙11、雙12網路購物節中,無數網友在各個電商網站的促銷大旗下開啟了買買買模式。不過,當你在網上選購商品時,同類的商品成千上萬,哪些因素會影響你選購某件商品呢?商品評論一定是一個重要的參考吧。一般我們總會看看歷史銷量高不高,用戶評論好不好,然後再去下單。
然而各位一定也有所耳聞,買的不如賣的精,刷單的、刷評論的始終橫行網上,沒准你看到的評論就是賣家自己刷出來的。事實上,許多精明的淘寶賣家會在雙十一等網購高峰期售賣「爆款」,「干一票就撤」,這正是虛假評論的溫床。有時我們選購商品,經常會發現許多條看起來十分誇張的評論,如某女鞋的商品評論:
「超級好看的鞋,隨便搭配衣服就覺得自己像女神,又不磨腳,站一天都不會累。下次還來買,趕快上新款哦!」
「有史以來最滿意的鞋,媽媽看了說是真皮的,賣家態度又很好,發貨超快,誠信賣家,特別滿意的一次購物!」
連續幾百幾千條「真情實感」的好評這樣刷下來,恐怕會有許多顧客被洗腦:這個商品銷量真高,評論也不錯,那就買這家吧!結果網上的爆款買回家卻變成了廢品。我們買家真是絕對的信息弱勢方,賣家給出的描述真假尚且不知,刷好評又讓人防不勝防。那麼,如何才能識別刷單評論呢?我們在此介紹一種藉助文本挖掘模型的破解之道。
首先要解決數據來源問題,可以從網站上批量下載這些評論,也就是爬蟲。目前有兩種方法,一種是編程,可以使用python、java等編程語言去編寫爬蟲程序;還有一種是使用成熟爬蟲軟體,可以利用界面操作來爬蟲。筆者決定使用免費的gooseeker軟體來做,這個軟體是Firefox瀏覽器的插件,避免了很多網站動態渲染不好分析的問題,它藉助了瀏覽器的功能,只要在瀏覽器上看到的元素就可以方便地下載。該軟體提供了詳細的教程和用戶社區,可以指導用戶一步步設置抓取內容、抓取路線、連續動作、同類型網頁的重復抓取,大家可以自行學習使用。
筆者最終抓取了四款同類型的鞋子的評論數據,包括會員名、商品描述、購買日期、購買型號、評論日期、評論文本等,共計5000多條數據。我們特意選取了具有刷單傾向的商品,可以看出,其中許多評論日期連續、會員名相似、買家等級較低;經過人眼識別,刷單評論佔比約30%。我們意在使用這些數據去構建刷單評論識別模型,然後可以用這里得出來的規則去識別其它鞋類商品的刷單評論。
SAS Enterprise Miner 13.2是一款大家熟知的數據挖掘工具,它可以針對大型數據進行分析,並根據分析結果建立精確的預測和描述模型,因此為我們所選用,不過使用其他軟體也是相同的分析思路。
我們把先前獲取的5000條評論一分為二,其中70%作為訓練樣本,30%作為驗證樣本。首先,用文本解析將訓練樣本中的評論文本內容拆詞,在拆詞時可以選擇忽略缺乏實際意義的代詞、感嘆詞、介詞、連詞,忽略數字與標點符號。以上拆詞過程相當於把非結構化數據轉成了結構化數據,以前的一段文本如今可以用若干列來表示,每列代表一個詞,如果文本中出現了該詞該列取值為1,否則取值為0。
現在我們還不能直接拿它來建模,通過上圖我們可以發現很多詞只出現在少部分文章中,可以使用文本過濾器節點來去除詞頻很低的詞。
在文本過濾器中可以設置最小文檔數,指定排除小於該文檔出現數目的詞條,同時也要排除像「就」、「這」、「是」、「有」這樣詞頻高卻意義不大的詞。除此之外,還可以進行同義詞處理,我們可以手動添加同義詞,也可以導入外部的同義詞庫。比如,「暖和」與「保暖」是同義詞,「好看」與「漂亮」可以互相替代……
在軟體中還可以查看詞與詞之間的鏈接關系:
接下來,我們可以使用文本規則生成器節點來建模,發現哪些片語組合與刷單有直接的關系:
我們將訓練樣本中的真實評論設置為0(藍色),刷單虛假好評設置為1(紅色)。上圖中可以看出,提到「暖和」(包括同義詞「保暖」)這樣的詞時,評論極可能是真實的;而寫著「鞋子很時尚哦」「做工精細,還會再買」而沒有提到暖和與否的,則多半是虛假好評。
說到這里,你可能會好奇:為什麼「暖和」這樣一個普通的詞,倒成了真假評論的試金石?
我們不妨回想一下自己作為普通買家的購物經歷:在收到貨品並試用之後,通常只會簡單描述一下自己的使用感受,這些感受一定。而水軍則不然,他們從來沒有真正收到商品,更談不上試穿啦,為了完成業務指標,只好按照賣家提供的商品描述,盡量從質量、物流、服務態度甚至搭配等多方面強調商品本身的特性。從我們所做的案例來講,「暖和」自然屬於親身感受,而「真皮」「做工」之類,恐怕不是普通買家最想反饋的性質。
那麼這個模型的總體效果如何呢?我們可以用累積提升度這個指標來評價:
我們還留下了30%的驗證樣本,現在它們可以現身來驗證成果了。請看上圖中的粉紅色曲線:如果用這個模型去對評論進行打分,按照疑似為虛假評論(「1」)的概率去排名,取前5%的評論時,提升度為3倍;我們已知虛假評論約占總體的30%,也就是說,概率排名前5%的評論中有九成都是刷的,從而證明我們的模型相當精準地捕捉了刷單評論。
最後,我們要為賣家說句公道話:淘寶刷單惡性競爭嚴重,完全不刷好評的店家恐怕不多,不能說有刷評論的店就完全不能下手,90%刷單的商品實在駭人聽聞,10%刷單的店則或許質量尚可接受。這也進一步說明了我們的模型的作用:判斷商品的刷單比例,比逐條判斷評論是否虛假更加實用。
如今網路水軍也在持續進化中,寫出的評論越來越真情實感、具有極強的誤導性,單憑肉眼分辨既浪費時間、又易被迷惑;但虛假評論可以推陳出新,我們的模型更可以隨時跟進「學習」。如果將本文中的方法進行推廣,則可以形成一個捕捉評論——文本解析——建立模型——判斷虛假評論比例的標准過程,這樣的方法無疑相當具有實用性。
end
Ⅷ 如何用python獲取京東的評論數據
京東商品評論信息是由JS動態載入的,所以直接抓取商品詳情頁的URL並不能獲得商品評論的信息。因此我們需要先找到存放商品評論信息的文件。這里我們使用Chrome瀏覽器里的開發者工具進行查找。
具體方法是在商品詳情頁點擊滑鼠右鍵,選擇檢查,在彈出的開發者工具界面中選擇Network,設置為禁用緩存(Disable cache)和只查看JS文件。然後刷新頁面。頁面載入完成後向下滾動滑鼠找到商品評價部分,等商品評價信息顯示出來後,在下面Network界面的左側篩選框中輸入proctPageComments,這時下面的載入記錄中只有一條信息,這里包含的就是商品詳情頁的商品評論信息。點擊這條信息,在右側的Preview界面中可以看到其中包含了當前頁面中的評論信息。(抓取價格信息輸入prices)。
復制這條信息,並把URL地址放在瀏覽器中打開,裡麵包含了當前頁的商品評論信息。這就是我們要抓取的URL地址。
仔細觀察這條URL地址可以發現,其中proctId=10001234327是當前商品的商品ID。與商品詳情頁URL中的ID一致。而page=0是頁碼。如果我們要獲取這個商品的所有評論,只需要更改page後面的數字即可。
在獲得了商品評論的真實地址以及URL地址的規律後,我們開始使用python抓取這件商品的700+條評論信息。並對這些信息進行處理和分析。
開始前的准備工作
在開始抓取之前先要導入各種庫文件,這里我們分別介紹下需要導入的每個庫文件的名稱以及在數據抓取和分析中的作用。requests用於進行頁面抓取,time用於設置抓取過程中的Sleep時間,random用於生產隨機數,這里的作用是將抓取頁面的順序打亂,re用於在抓取後的頁面代碼中提取需要的信息,numpy用於常規的指標計算,pandas用於進行數據匯總和透視分析,matplotlib用於繪制各站圖表,jieba用於對評論內容進行分詞和關鍵詞提取。
#導入requests庫(請求和頁面抓取)
import requests
#導入time庫(設置抓取Sleep時間)
import time
#導入random庫(生成亂序隨機數)
import random
#導入正則庫(從頁面代碼中提取信息)
import re
#導入數值計算庫(常規計算)
import numpy as np
#導入科學計算庫(拼表及各種分析匯總)
import pandas as pd
#導入繪制圖表庫(數據可視化)
import matplotlib.pyplot as plt
#導入結巴分詞庫(分詞)
import jieba as jb
#導入結巴分詞(關鍵詞提取)
import jieba.analyse
將爬蟲偽裝成瀏覽器
導入完庫文件後,還不能直接進行抓取,因為這樣很容易被封。我們還需要對爬蟲進行偽裝,是爬蟲看起來更像是來自瀏覽器的訪問。這里主要的兩個工作是設置請求中的頭文件信息以及設置Cookie的內容。
頭文件信息很容易找到,在Chrome的開發者工具中選擇Network,刷新頁面後選擇Headers就可以看到本次訪問的頭文件信息,裡麵包含了一些瀏覽器的技術參數和引薦來源信息。將這些信息直接添加到代碼中就可以,這里我們將頭部信息保存在headers中。
#設置請求中頭文件的信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Connection':'close',
'Referer':''
}
在查看頭文件信息的旁邊還有一個Cookies標簽,點擊進去就是本次訪問的Cookies信息。這里的Cookies信息與前面頭文件中的Cookie信息一致,不過這里更加清晰。把Request Cookies信息復制到代碼中即可,這里我們將Request Cookies信息保存在Cookie中。
#設置Cookie的內容
cookie={'TrackID':'1_VWwvLYiy1FUr7wSr6HHmHhadG8d1-Qv-TVaw8JwcFG4EksqyLyx1SO7O06_Y_XUCyQMksp3RVb2ezA',
'__jda':'122270672.1507607632.1423495705.1479785414.1479794553.92',
'__jdb':'122270672.1.1507607632|92.1479794553',
'__jdc':'122270672',
'__j':'1507607632',
'__jdv':'122270672|direct|-|none|-|1478747025001',
'areaId':'1',
'cn':'0',
'ipLoc-djd':'1-72-2799-0',
'ipLocation':'%u5317%u4EAC',
'mx':'0_X',
'rkv':'V0800',
'user-key':'216123d5-4ed3-47b0-9289-12345',
'xtest':'4657.553..'}
抓取商品評論信息
設置完請求的頭文件和Cookie信息後,我們開始抓取京東商品評論的信息。前面分析URL的時候說過,URL中包含兩個重要的信息,一個是商品ID,另一個是頁碼。這里我們只抓取一個商品的評論信息,因此商品ID不需要更改。但這個商品的評論有700+條,也就是有近80頁需要抓取,因此頁碼不是一個固定值,需要在0-80之間變化。這里我們將URL分成兩部分,通過隨機生成頁碼然後拼接URL的方式進行抓取。
#設置URL的第一部分
url1=''
#設置URL的第二部分
url2='&pageSize=10&callback=fetchJSON_comment98vv41127'
#亂序輸出0-80的唯一隨機數
ran_num=random.sample(range(80), 80)
為了使抓取過程看起來更加隨機,我們沒有從第1頁一直抓取到第80頁。而是使用random生成0-80的唯一隨機數,也就是要抓取的頁碼編號。然後再將頁碼編號與兩部分URL進行拼接。這里我們只知道商品有700+的評論,但並不知道具體數字,所以抓取范圍定位從0-80頁。
下面是具體的抓取過程,使用for循環每次從0-80的隨機數中找一個生成頁碼編號,與兩部分的URL進行拼接。生成要抓取的URL地址並與前面設置好的頭文件信息和Cookie信息一起發送請求獲取頁面信息。將獲取到的頁面信息進行匯總。每次請求間休息5秒針,避免過於頻繁的請求導致返回空值。
#拼接URL並亂序循環抓取頁面
for i in ran_num:
a = ran_num[0]
if i == a:
i=str(i)
url=(url1+i+url2)
r=requests.get(url=url,headers=headers,cookies=cookie)
html=r.content
else:
i=str(i)
url=(url1+i+url2)
r=requests.get(url=url,headers=headers,cookies=cookie)
html2=r.content
html = html + html2
time.sleep(5)
print("當前抓取頁面:",url,"狀態:",r)
在抓取的過程中輸入每一步抓取的頁面URL以及狀態。通過下面的截圖可以看到,在page參數後面的頁碼是隨機生成的並不連續。
抓取完80個頁面後,我們還需要對頁面進行編碼。完成編碼後就可以看到其中所包含的中文評論信息了。後面大部分苦逼的工作就是要對這些評論信息進行不斷提取和反復的清洗。
#對抓取的頁面進行編碼
html=str(html, encoding = "GBK")
這里建議將抓取完的數據存儲在本地,後續工作可以直接從本地打開文件進行清洗和分析工作。避免每次都要重新抓取數據。這里我們將數據保存在桌面的page.txt文件中。
#將編碼後的頁面輸出為txt文本存儲
file = open("c:\\Users \\Desktop\\page.txt", "w")
file.write(html)
file.close()
讀取文件也比較簡單,直接open加read函數就可以完成了。
#讀取存儲的txt文本文件
html = open('c:\\Users\\ Desktop\\page.txt', 'r').read()
提取信息並進行數據清洗
京東的商品評論中包含了很多有用的信息,我們需要將這些信息從頁面代碼中提取出來,整理成數據表以便進行後續的分析工作。這里應該就是整個過程中最苦逼的數據提取和清洗工作了。我們使用正則對每個欄位進行提取。對於特殊的欄位在通過替換等方式進行提取和清洗。
下面是提取的第一個欄位userClient,也就是用戶發布評論時所使用的設備類型,這類的欄位提取還比較簡單,一行代碼搞定。查看一下提取出來的欄位還比較干凈。使用同樣的方法我們分別提取了以下這些欄位的內容。
#使用正則提取userClient欄位信息
userClient=re.findall(r',"usefulVoteCount".*?,"userClientShow":(.*?),',html)
#使用正則提取userLevel欄位信息
userLevel=re.findall(r'"referenceImage".*?,"userLevelName":(.*?),',html)
#使用正則提取proctColor欄位信息
proctColor=re.findall(r'"creationTime".*?,"proctColor":(.*?),',html)
#使用正則提取recommend欄位信息
recommend=re.findall(r'"creationTime".*?,"recommend":(.*?),',html)
#使用正則提取nickname欄位信息
nickname=re.findall(r'"creationTime".*?,"nickname":(.*?),',html)
#使用正則提取userProvince欄位信息
userProvince=re.findall(r'"referenceImage".*?,"userProvince":(.*?),',html)
#使用正則提取usefulVoteCount欄位信息
usefulVoteCount=re.findall(r'"referenceImage".*?,"usefulVoteCount":(.*?),',html)
#使用正則提取days欄位信息
days=re.findall(r'"usefulVoteCount".*?,"days":(.*?)}',html)
#使用正則提取score欄位信息
score=re.findall(r'"referenceImage".*?,"score":(.*?),',html)</pre>
還有一些欄位比較負責,無法通過正則一次提取出來,比如isMobile欄位,有些值的後面還有大括弧。這就需要進一步的提取和清洗工作。
#使用正則提取isMobile欄位信息
isMobile=re.findall(r'"usefulVoteCount".*?,"isMobile":(.*?),',html)
使用for循環配合替換功能將欄位中所有的}替換為空。替換完成後欄位看起來干凈多了。
#替換掉最後的}
mobile=[]
for m in isMobile:
n=m.replace('}','')
mobile.append(n)
proctSize欄位中包含了胸圍和杯罩兩類信息,為了獲得獨立的杯罩信息需要進行二次提取,將杯罩信息單獨保存出來。
#使用正則提取proctSize欄位信息
proctSize=re.findall(r'"creationTime".*?,"proctSize":(.*?),',html)
使用for循環將proctSize中的第三個字元杯罩信息提取出來,並保持在cup欄位中。
#提取杯罩信息
cup=[]
for s in proctSize:
s1=s[3]
cup.append(s1)
創建評論的日期信息僅依靠正則提取出來的信息還是比較亂,無法直接使用。因此也需要進行二次提取。下面是使用正則提取出的結果。
#使用正則提取時間欄位信息
creationTime1=re.findall(r'"creationTime":(.*?),"referenceName',html)
日期和時間信息處於前20個字元,在二次提取中根據這個規律直接提起每個條目的前20個字元即可。將日期和時間單獨保存為creationTime。
#提取日期和時間
creationTime=[]
for d in creationTime1:
date=d[1:20]
creationTime.append(date)
在上一步日期和時間的基礎上,我們再進一步提取出單獨的小時信息,方法與前面類似,提取日期時間中的第11和12個字元,就是小時的信息。提取完保存在hour欄位以便後續的分析和匯總工作。
#提取小時信息
hour=[]
for h in creationTime:
date=h[10:13]
hour.append(date)
最後要提取的是評論內容信息,頁面代碼中包含圖片的評論信息是重復的,因此在使用正則提取完後還需要對評論信息進行去重。
#使用正則提取評論信息
content=re.findall(r'"guid".*?,"content":(.*?),',html)
使用if進行判斷,排除掉所有包含圖片的評論信息,已達到評論去重的目的。
#對提取的評論信息進行去重
content_1=[]
for i in content:
if not "img" in i:
content_1.append(i)
完成所有欄位信息的提取和清洗後,將這些欄位組合在一起生成京東商品評論數據匯總表。下面是創建數據表的代碼。數據表生成後還不能馬上使用,需要對欄位進行格式設置,例如時間和日期欄位和一些包含數值的欄位。具體的欄位和格式設置依據後續的分析過程和目的。這里我們將creationTime設置為時間格式,並設置為數據表的索引列。將days欄位設置為數值格式。
#將前面提取的各欄位信息匯總為table數據表,以便後面分析
table=pd.DataFrame({'creationTime':creationTime,'hour':hour,'nickname':nickname,'proctColor':proctColor,'proctSize':proctSize,'cup':cup,'recommend':recommend,'mobile':mobile,'userClient':userClient,'userLevel':userLevel,'userProvince':userProvince,'usefulVoteCount':usefulVoteCount,'content_1':content_1,'days':days,'score':score})
#將creationTime欄位更改為時間格式
table['creationTime']=pd.to_datetime(table['creationTime'])
#設置creationTime欄位為索引列
table = table.set_index('creationTime')
#設置days欄位為數值格式
table['days']=table['days'].astype(np.int64)
#查看整理完的數據表
table.head()
這里建議再次保存清洗和預處理完的數據表。我們這里將數據表保存為csv格式。到了這一步可以選擇在Excel中完成後續的數據分析和可視化過程,也可以繼續在python中完成。我們這里選擇繼續在python中完成後續的數據分析和可視化工作。
#保存table數據表
table.to_csv('jd_table.csv')
數據分析及可視化
分月評論數據變化趨勢
首先查看京東商品評論的時間變化趨勢情況,大部分用戶在購買商品後會在10天以內進行評論,因此我們可以近似的認為在一個月的時間維度中評論時間的變化趨勢代表了用戶購買商品的變化趨勢。
Ⅸ 大數據關鍵技術有哪些
大數據關鍵技術涵蓋數據存儲、處理、應用等多方面的技術,根據大數據的處理過程,可將其分為大數據採集、大數據預處理、大數據存儲及管理、大數據處理、大數據分析及挖掘、大數據展示等。
1、大數據採集技術
大數據採集技術是指通過 RFID 數據、感測器數據、社交網路交互數據及移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。
因為數據源多種多樣,數據量大,產生速度快,所以大數據採集技術也面臨著許多技術挑戰,必須保證數據採集的可靠性和高效性,還要避免重復數據。
2、大數據預處理技術
大數據預處理技術主要是指完成對已接收數據的辨析、抽取、清洗、填補、平滑、合並、規格化及檢查一致性等操作。
因獲取的數據可能具有多種結構和類型,數據抽取的主要目的是將這些復雜的數據轉化為單一的或者便於處理的結構,以達到快速分析處理的目的。
3、大數據存儲及管理技術
大數據存儲及管理的主要目的是用存儲器把採集到的數據存儲起來,建立相應的資料庫,並進行管理和調用。
4、大數據處理
大數據的應用類型很多,主要的處理模式可以分為流處理模式和批處理模式兩種。批處理是先存儲後處理,而流處理則是直接處理。
(9)商品評論用啥技術存儲擴展閱讀:
大數據無處不在,大數據應用於各個行業,包括金融、汽車、餐飲、電信、能源、體能和娛樂等在內的社會各行各業都已經融入了大數據的印跡。
1、製造業,利用工業大數據提升製造業水平,包括產品故障診斷與預測、分析工藝流程、改進生產工藝,優化生產過程能耗、工業供應鏈分析與優化、生產計劃與排程。
2、金融行業,大數據在高頻交易、社交情緒分析和信貸風險分析三大金融創新領域發揮重大作用。
3、汽車行業,利用大數據和物聯網技術的無人駕駛汽車,在不遠的未來將走入我們的日常生活。
4、互聯網行業,藉助於大數據技術,可以分析客戶行為,進行商品推薦和針對性廣告投放。
5、電信行業,利用大數據技術實現客戶離網分析,及時掌握客戶離網傾向,出台客戶挽留措施。