網購是一個流行的平臺,同時也是一個非常便捷的方式,雖然是在虛擬網絡的商品,但是它們都有各自的參數(shù)鏈接,也是商品的另類名牌,那這個淘寶寶貝鏈接url分析該怎么進行呢?
一、整體思路
1、首先你需要一個IP代理池
2、使用本機IP將淘寶中基本的商品分類抓取下來
頁面源鏈接:https://www.taobao.com/tbhome/page/market-list
從頁面源鏈接中解析到的URL形如下:https://s.taobao.com/search?q=羽絨服&style=grid
3、將諸如此類的URLhttps://s.taobao.com/search?q=羽絨服&style=grid作為任務隊列,使用多線程對其進行抓取與解析(使用代理IP),解析的內容為第4點
4、我們需要分析每一種類的商品在淘寶中大概具有多少數(shù)量,為此我解析出帶有頁面參數(shù)的URL,在第3點中URL的基礎上:https://s.taobao.com/search?q=羽絨服&style=grid&s=44,在瀏覽器中打開URL可發(fā)現(xiàn)此頁面為此種類衣服的第二頁
5、我們得到了每一種商品帶有頁面參數(shù)的URL,意味著我們可以得到此類商品中全部或部分的商品ID,有了商品ID,我們就可以進入商品詳情頁抓取我們想要的數(shù)據(jù)了
6、為了實現(xiàn)第5點,我們先將第4點中抓取到的URL全部存儲進MySQL中
7、從MySQL中將待抓取URL全部取出,存儲到一個隊列中,使用多線程對此共享隊列進行操作,使用代理IP從待解析URL中解析出本頁面中包含的商品ID,并構建商品詳情頁URL
8、在第7點中解析商品ID的時候,同時使用布隆過濾器,對重復ID進行過濾,并將已經抓取過的URL任務放入Redis緩存中,等達到合適的閾值時,將存儲在MySQL中對應的URL行記錄中的flag置為true,表示此URL已經被抓取過,等到下一次重啟系統(tǒng),可以不用對此URL進行抓取
二、實現(xiàn)細節(jié)
我們先從IP代理池說起,在這個項目中所運用到的IP代理池與我在Java網絡爬蟲(十一)–重構定時爬取以及IP代理池(多線程+Redis+代碼優(yōu)化)這一篇博客中所講述的IP代理池的實現(xiàn)思想有一些細小的差別。
三、監(jiān)控線程
這個線程的主要作用是將Redis數(shù)據(jù)庫中緩存的,已經成功解析過的任務,將其對應MySQL中所在的行記錄中的flag位設置為true。
一些賣家需要把寶貝放在淘寶站外的網站上推廣,這個時候就需要賣家提取無線的鏈接地址,大家也可以登錄淘寶,進入賣家中心點擊任意寶貝提取url鏈接哦!
推薦閱讀:
查看更多相似文章