為完成一個小型爬蟲項目,在并未使用該平臺提供的API情況下,細(xì)致分析了國內(nèi)某著名電商網(wǎng)站商品屬性的獲取思路和方法,茲此記錄分享,學(xué)習(xí)交流。
靜態(tài)頁面部分
為了獲取獨(dú)立商城網(wǎng)站建設(shè)靜態(tài)頁面部分的內(nèi)容,需要使用firefox的開發(fā)者功能禁用javascript,如圖
勾選"Disable JavaScript"。刷新頁面后可見。通過靜態(tài)頁面可獲取標(biāo)題,商品ID,分類號,商品URL,圖片url等內(nèi)容??芍苯邮褂谜齽t表達(dá)式或xpath等工具分析獲得,這里不再贅述。
動態(tài)內(nèi)容部分
該網(wǎng)站大部分商品屬性都是通過ajax動態(tài)獲取的。還是通過瀏覽器來分析。取消勾選"Disable JavaScript"后,使用"Network"工具可對服務(wù)器響應(yīng)的包進(jìn)行抓包和分類。為避免反復(fù)重新加載頁面時緩存的影響,勾選"Disable Cache"選項。先打開"Network"界面,然后刷新頁面,可獲得加載過程的抓包內(nèi)容。ajax請求返回的數(shù)據(jù)為json或js類型。
例如:某json數(shù)據(jù),url為
可在network工具箱內(nèi)查看其response內(nèi)容為
對照頁面內(nèi)容后發(fā)現(xiàn)其中p字段正是商品價格數(shù)據(jù)!
通過直接打開鏈接得到j(luò)son串為
此response中帶有回調(diào)函數(shù)名"cnp",觀察在url中也有一個相同字段。遂嘗試在url中去掉該字段,重新請求后
獲得json:
繼續(xù)嘗試刪除請求中的get參數(shù),最終發(fā)現(xiàn)可用
正常獲取到相同的數(shù)據(jù)。
python解析代碼:
獲取到網(wǎng)上商城系統(tǒng)網(wǎng)站價格數(shù)據(jù),方便了自動化生成。其余不能通過靜態(tài)內(nèi)容獲取的屬性均可類比分析嘗試獲得。
文章來源:segmentfault
<數(shù)商云(www.zhimaihui.cn)是國內(nèi)知名企業(yè)級電商平臺提供商,為企業(yè)級商家提供最佳的系統(tǒng)開發(fā)(多種模式電商平臺搭建:B2B/B2B2C/B2C/O2O/新零售等)、供應(yīng)鏈系統(tǒng)搭建及電商行業(yè)解決方案服務(wù)>
評論