Scrapy-Splash爬取淘宝排行榜(二)
四 開(kāi)始爬取
1.首先分析淘寶排行榜的設(shè)置。在這里,商品被分為服飾,數(shù)碼家電,化妝品,母嬰,食品,文體,家具,車|玩具|寵物。而點(diǎn)開(kāi)每個(gè)大類,又可以看到商品被分為很多小類。點(diǎn)開(kāi)任意小類,往下拉就可以看到該類商品的排行信息,包括銷售上升榜,銷售熱門榜等等。這里我只爬取銷售熱門榜的內(nèi)容,所以繼續(xù)點(diǎn)擊銷售熱門榜的標(biāo)簽。可以看到在這里列出了該類前二十的商品。信息包括:排名,關(guān)鍵詞,參考價(jià),成交指數(shù),升降位次。這里,我只爬取前四項(xiàng)內(nèi)容,另外加上大類的分類id和小類的分類id。大類的id和小類的id可以從淘寶的url中看出:
https://top.taobao.com/index.php?spm=a1z5i.1.2.2.5KF9iq&topId=TR_FS&leafId=50010850如上,topId=后面的就是大類的分類id,其他的大類id還有TR_SM,TR_HZP,TR_MY,TR_SP,TR_WT,TR_JJ,TR_ZH。小類id就來(lái)源自leafId=后面的數(shù)字,所以我定義的item.py中如下:
rank=Field()title=Field()price=Field()turnover_index=Field()top_id=Field()type_id=Field()2.設(shè)置完成items.py后,接下來(lái)就是處理item所需要用到的pipeline了。在這里我用到了三個(gè)pipeline,分別檢查每個(gè)item的所有屬性是否都存在,如果不存在就丟掉這個(gè)item并報(bào)錯(cuò);第二個(gè)pipeline就是對(duì)每個(gè)item中的屬性進(jìn)行utf8編碼;第三個(gè)pipeline就是數(shù)據(jù)庫(kù)的寫入。這里介紹下第三個(gè)pipeline.
第三個(gè)pipeline內(nèi)容
其中,每個(gè)pipeline都必須實(shí)現(xiàn)process_item方法,在當(dāng)前pipeline的process_item,我就是進(jìn)行了數(shù)據(jù)庫(kù)的寫入。同時(shí),還可以實(shí)現(xiàn)open_spider以及close_spider。在open_spider 我們就連接數(shù)據(jù)庫(kù),同時(shí)創(chuàng)建一個(gè)table,用來(lái)存入數(shù)據(jù)。在close_spider 我們就flush table,同時(shí)關(guān)閉數(shù)據(jù)庫(kù)連接。
3.另外table的創(chuàng)建可以參考這里:
table的創(chuàng)建
實(shí)現(xiàn)了insert,flush等方法。
下一篇介紹spider的內(nèi)容
Scrapy-Splash爬取淘寶排行榜(三)
總結(jié)
以上是生活随笔為你收集整理的Scrapy-Splash爬取淘宝排行榜(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2020年非上海生源应届普通高校毕业生落
- 下一篇: 微型计算机14年评测16万,多年以后重入