爬取淘寶任一商品首頁動(dòng)態(tài)數(shù)據(jù)信息

在淘寶首頁輸入商品數(shù)據(jù),搜索出來的商品信息是ajax動(dòng)態(tài)加載出來的,這樣的信息再源代碼的是找不到,于是爬取這些信息可以選擇selenium或者找到這個(gè)js文件進(jìn)行解析,本文這次是抓到這個(gè)js文件進(jìn)行解析的,首先打開淘寶頁面,本文以搜索文胸為例子,如圖,注意此時(shí)network中是只有少數(shù)幾個(gè)js文件的

Paste_Image.png

點(diǎn)擊商品頁面第二頁,我們發(fā)現(xiàn)JS中多了很多個(gè)請(qǐng)求,如圖,這里有隱藏著商品信息的js文件

Paste_Image.png

找到這個(gè)文件就好辦了,接下來就發(fā)送請(qǐng)求,解析json文件的事情了,只要點(diǎn)多幾次,這個(gè)文件就能找到的,不難,如圖


Paste_Image.png
Paste_Image.png

但是觀察這份json數(shù)據(jù)和網(wǎng)址之間的關(guān)系茅茂,我們還可以做一些相應(yīng)的修改媒吗,方便我們爬取之后的解析,這也是樓主實(shí)驗(yàn)多次的結(jié)果涌矢,爬蟲真是體力活啊


Paste_Image.png

去掉如圖紅色箭頭所指的字母之后是這樣的摆出,這就是一份很規(guī)則的json數(shù)據(jù)了锁蠕,直接解析就好了

Paste_Image.png
import requests
import json
import csv
class Spider(object):
首先找到獲得這個(gè)文件的鏈接,其實(shí)這個(gè)鏈接很長,但是我們可以修改,把其他東西去掉,剩下這樣的
https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksTS=1479917597216_854&callback&q={},
大括號(hào)里面的是我們自己填充的搜索內(nèi)容,
,我們使用這個(gè)簡化版的url,訪問效果是一樣的
json_url='https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksTS=1479917597216_854&callback&q={}'
再提一下,這里q之前的jsonjsonp1035這個(gè)字符已經(jīng)鏈接上去掉,
否則獲得的json文件就有這個(gè)字符在前面,影響json.loads的解析,
這里可是折騰了樓主這種小白差不多兩個(gè)小時(shí)啊,簡直要死
    def __init__(self,kwyword):
        self.url =self.json_url.format(kwyword)
        data = self.get_source()
        #print(data)
        #print(type(data))

        #print(data)
        rusult_list= self.get_all_data(data)
        self.write_data(rusult_list)
    def get_source(self):
        html = requests.get(self.url)
        #print(html.content)
        return html.content.decode()不解碼的話看不到文字
    def get_all_data(self,data):
        data_dict= json.loads(data)

        print(data_dict)
        print(type(data_dict))
        item_list = data_dict['mods']['itemlist']['data']['auctions']
      這一步尤其關(guān)鍵,是提取信息最關(guān)鍵的一步,也是折騰了我最久的,不得不感嘆,淘寶的數(shù)據(jù)隱藏得真是深啊
        print(item_list)
        result_list = []
        for item in item_list:
            result_dict = {}
            result_dict['title'] = item['title'].replace('<span class=H>', '').replace('</span>', '')
            result_dict['url'] = 'http:' + item['detail_url']
            result_dict['location'] = item['item_loc']
            result_dict['shop_name'] = item['nick']
            result_dict['原價(jià)'] = item['reserve_price']
            result_dict['現(xiàn)價(jià)'] = item['view_price']
            print(result_dict)
            result_list.append(result_dict)
        return result_list
    def write_data(self, result_list):
        with open('result.csv', 'w', encoding='UTF-8') as f:
            writer = csv.DictWriter(f, fieldnames=['title', '原價(jià)', '現(xiàn)價(jià)','shop_name', 'location',  'url'])
            writer.writeheader()
            writer.writerows(result_list)

if __name__ == '__main__':
    keyword=input('請(qǐng)輸入搜索的內(nèi)容:' )
    all_data = Spider(keyword)

這是解析后的數(shù)據(jù)

Paste_Image.png

最后效果圖

Paste_Image.png
Paste_Image.png

當(dāng)然,只抓取一頁怎么能滿足呢,于是我分析了每個(gè)頁面的url,發(fā)現(xiàn)還是有規(guī)律的


Paste_Image.png

除了第一個(gè)頁面的js文件有點(diǎn)特殊,其他的都是由規(guī)律可以尋找的,這為我們大規(guī)模爬取提供了可能,數(shù)據(jù)還可以提取每個(gè)商品的購買人數(shù),運(yùn)費(fèi)等等信息,對(duì)于分析也很有幫助,以后想起再來寫吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懊蒸,一起剝皮案震驚了整個(gè)濱河市荣倾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骑丸,老刑警劉巖舌仍,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異通危,居然都是意外死亡铸豁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門菊碟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來节芥,“玉大人,你說我怎么就攤上這事逆害⊥纺鳎” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵魄幕,是天一觀的道長相艇。 經(jīng)常有香客問我,道長纯陨,這世上最難降的妖魔是什么坛芽? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任留储,我火速辦了婚禮,結(jié)果婚禮上咙轩,老公的妹妹穿的比我還像新娘获讳。我一直安慰自己,他們只是感情好活喊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布丐膝。 她就那樣靜靜地躺著,像睡著了一般胧弛。 火紅的嫁衣襯著肌膚如雪尤误。 梳的紋絲不亂的頭發(fā)上侠畔,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天结缚,我揣著相機(jī)與錄音,去河邊找鬼软棺。 笑死红竭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喘落。 我是一名探鬼主播茵宪,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼瘦棋!你這毒婦竟也來了稀火?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤赌朋,失蹤者是張志新(化名)和其女友劉穎凰狞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沛慢,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赡若,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了团甲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逾冬。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躺苦,靈堂內(nèi)的尸體忽然破棺而出身腻,到底是詐尸還是另有隱情,我是刑警寧澤匹厘,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布霸株,位于F島的核電站,受9級(jí)特大地震影響集乔,放射性物質(zhì)發(fā)生泄漏去件。R本人自食惡果不足惜坡椒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尤溜。 院中可真熱鬧倔叼,春花似錦、人聲如沸宫莱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽授霸。三九已至巡验,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碘耳,已是汗流浹背显设。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辛辨,地道東北人捕捂。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像斗搞,于是被迫代替她去往敵國和親指攒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容