用scrapy全網(wǎng)爬取蘇寧易購(gòu)圖書(shū)

分析:
item["h_3"]里面的東西是通過(guò)json抓包之后分析的到的鏈接
打印item["h_3"]可以知道各個(gè)類(lèi)型的書(shū)籍的第一頁(yè)的鏈接
正則解析param.pageNumbers=(.?)和param.currentPage =(.?)來(lái)判斷是否還有下一頁(yè)州叠,有就進(jìn)行翻頁(yè)尼酿,并且item["h_3"]的頁(yè)面加1

# -*- coding: utf-8 -*-
import re
from copy import deepcopy
import scrapy


class SnSpider(scrapy.Spider):
    name = 'sn2'
    allowed_domains = ['suning.com']
    start_urls = ['https://book.suning.com/']

    def parse(self, response):
        li_list = response.xpath("http://div[@class='menu-list']//dl")
        for li in li_list:
            item = {}
            item["b_cate"] = li.xpath(".//dt/h3/a/text()").extract_first()  # 大分類(lèi)
            a_list = li.xpath("./dd/a")  # 小分類(lèi)
            for a in a_list:
                item["s_href"] = a.xpath("./@href").extract_first()  # 小分類(lèi)的鏈接
                item["s_cate"] = a.xpath("./text()").extract_first()  # 小分類(lèi)名字
                item["h_2"] = item["s_href"][26:32]
                item["h_3"] = "http://list.suning.com/emall/showProductList.do?ci=" + item["h_2"] + '&pg=03&cp=2'
                print(item["h_3"])

                if item["h_3"] is not None:
                    print(item["h_3"])
                    yield scrapy.Request(item["h_3"], callback=self.parse_book_list, meta={"item": item})


    def parse_book_list(self, response):
        item = response.meta["item"]
        # print(response.body.encode())
        li_list = response.xpath("http://ul[@class='clearfix']/li")
        for li in li_list:
                item["book_commit"] = li.xpath(".//div[@class='res-info']/p[3]/a/text()[1]").extract_first()  #收藏人數(shù)
                item["book_desc"] = response.xpath(".//div[@class='res-info']/p[2]/a/em/text()").extract_first()  # 書(shū)籍詳情
                # item["book_price"] = response.xpath(".//div[@class='res-info']/p/em[1]").extract_first()  # 出版價(jià)格
                item["book_name"] = li.xpath(".//div[@class='res-img']//a[@target='_blank']/img/@alt").extract_first()  # 書(shū)名
                item["book_image"] = li.xpath(
                    ".//div[@class='res-img']//a[@target='_blank']/@href").extract_first()  # 書(shū)的封面鏈接
                if item["book_image"] is not None:
                    item["book_image"] = "https:" + item["book_image"]
                    yield scrapy.Request(item["book_image"], callback=self.parse_book_detail, meta={"item": deepcopy(item)})

        page_count = int(re.findall("param.pageNumbers=(.*?);", response.body.decode())[0])
        current_page = int(re.findall("param.currentPage =(.*?);", response.body.decode())[0])
        if current_page < page_count:
            next_url = item["h_3"][:-1] + '{}'.format(current_page + 1)
            yield scrapy.Request(
                next_url,
                callback=self.parse_book_list,
                meta={"item": response.meta["item"]}
            )

    def parse_book_detail(self, response):
        item = response.meta["item"]
        book_detail = response.xpath("http://ul[@class='bk-publish clearfix']/li").extract()
        for book1 in book_detail:
            book2 = book1.replace("\n", "").replace("\r", "").replace("\t", "").replace("</span>", "").replace("<span>",
                                                                                                               "")
            item["book_author"] = re.findall("作者:(.*?)</li>", book2)
            item["book_author"] = item["book_author"][0] if len(item["book_author"]) > 0 else None
            item["book_press"] =re.findall("出版社:(.*?)</li>",book2)
            item["book_press"] = item["book_press"][0] if len(item["book_press"]) > 0 else None
            item["publish_time"] =re.findall("出版時(shí)間:(.*?)</li>",book2)
            item["publish_time"] = item["publish_time"][0] if len(item["publish_time"]) > 0 else None
            print(item)

------------------------------------------------雍大喵

爬取輸入:

scrapy crawl sn2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剪勿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子只磷,更是在濱河造成了極大的恐慌抱完,老刑警劉巖狗热,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卖宠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡坪稽,警方通過(guò)查閱死者的電腦和手機(jī)曼玩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窒百,“玉大人黍判,你說(shuō)我怎么就攤上這事「萆遥” “怎么了柔袁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵臀脏,是天一觀的道長(zhǎng)凡简。 經(jīng)常有香客問(wèn)我因俐,道長(zhǎng),這世上最難降的妖魔是什么妄呕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任陶舞,我火速辦了婚禮,結(jié)果婚禮上绪励,老公的妹妹穿的比我還像新娘肿孵。我一直安慰自己唠粥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布停做。 她就那樣靜靜地躺著晤愧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雅宾。 梳的紋絲不亂的頭發(fā)上养涮,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天葵硕,我揣著相機(jī)與錄音眉抬,去河邊找鬼。 笑死懈凹,一個(gè)胖子當(dāng)著我的面吹牛蜀变,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播介评,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼库北,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了们陆?” 一聲冷哼從身側(cè)響起寒瓦,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坪仇,沒(méi)想到半個(gè)月后杂腰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椅文,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年喂很,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皆刺。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡少辣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羡蛾,到底是詐尸還是另有隱情漓帅,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布痴怨,位于F島的核電站忙干,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腿箩。R本人自食惡果不足惜豪直,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珠移。 院中可真熱鬧弓乙,春花似錦末融、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至懈玻,卻和暖如春巧婶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涂乌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工艺栈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人湾盒。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓湿右,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罚勾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毅人,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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

  • 有半個(gè)月沒(méi)有更新了,最近確實(shí)有點(diǎn)忙尖殃。先是華為的比賽丈莺,接著實(shí)驗(yàn)室又有項(xiàng)目,然后又學(xué)習(xí)了一些新的知識(shí)送丰,所以沒(méi)有更新...
    qiye閱讀 9,899評(píng)論 35 87
  • 這兩天摸索了下scrapy缔俄,剛看文檔的時(shí)候覺(jué)得有點(diǎn)生無(wú)可戀,scrapy框架個(gè)人還是覺(jué)得比較難懂的蚪战,需要學(xué)習(xí)的地方...
    Treehl閱讀 5,633評(píng)論 7 10
  • 失眠的夜晚 喜歡和兒子一起聽(tīng) 雷森媽媽講故事 小雞球球 突然想抱抱小小的自己 乖牵现,你有一個(gè)溫柔的會(huì)給你講故事的好媽...
    集安閱讀 166評(píng)論 1 2
  • 調(diào)休一天壁畸,出門(mén)走走贼急,突然有了拿起鋼筆畫(huà)畫(huà)的沖動(dòng)。聽(tīng)著spitz的ロビンソン捏萍,鋼筆就這樣慢慢舒展開(kāi)來(lái)太抓。很多亂七八糟的...
    酷酷的糯米團(tuán)子閱讀 118評(píng)論 0 1
  • 1.官網(wǎng)(https://www.alluxio.org)下載 我這里下載的是最新版本的alluxio-1.7.1...
    代碼足跡閱讀 1,336評(píng)論 0 2