爬取干貨集中營(yíng)數(shù)據(jù)(3)

爬取干貨集中營(yíng)數(shù)據(jù)(3)

http://gank.io/

改進(jìn)后的妹紙爬蟲 ???

1 項(xiàng)目結(jié)構(gòu)


project gank

2 修改 Item

  • title 標(biāo)題
  • images 妹子圖片
  • leftLink 左部導(dǎo)航
  • rightLink 右部導(dǎo)航
 class GankPageItem(scrapy.Item):
        title = scrapy.Field()
        images = scrapy.Field()
        leftLink = scrapy.Field()
        rightLink = scrapy.Field()

3 新建 gankpage_spider.py (spider 目錄下)

# -*- coding: utf-8 -*-

import scrapy

from gank.items import GankPageItem


class GnakPageSpider(scrapy.Spider):
    name = "gank"
    allowed_domains = ["gank.io"]
    start_urls = [
        "http://gank.io",
    ]
    url_prefix = "http://gank.io"

    def parse(self, response):

        pageItem = self.extract_item(response)
        yield pageItem

        # 左部導(dǎo)航不為空 則向左部爬取
        leftLinks = pageItem['leftLink']
        if len(leftLinks) == 1:
            leftLink = self.url_prefix + leftLinks[0]
            yield scrapy.Request(leftLink, callback=self.to_left_page)
        # 右部導(dǎo)航不為空 則向右部爬取
        rightLinks = pageItem['rightLink']
        if len(rightLinks) == 1:
            rightLink = self.url_prefix + rightLinks[0]
            yield scrapy.Request(rightLink, callback=self.to_right_page)

    def extract_item(self, response):
        '''
            頁面解析
        '''
        selector = scrapy.Selector(response)
        tagTitle = selector.xpath('head/title')
        tagNavDivs = selector.xpath('(//div[contains(@class, "typo")]/div[contains(@class, "container content")]/div[contains(@class, "row")])[1]/div')
        tagPs = selector.xpath('//div[contains(@class, "typo")]/div[contains(@class, "container content")]/div[contains(@class, "outlink")]/p')

        pageItem = GankPageItem()
        # 頁面標(biāo)題
        pageTitle = tagTitle.xpath('text()').extract()[0]
        pageItem['title'] = pageTitle #.encode('utf-8')
        # 妹紙圖片
        pageItem['images'] = tagPs.xpath('./img/@src').extract()
        # 導(dǎo)航鏈接
        if len(tagNavDivs) == 2:
            pageItem['leftLink'] = tagNavDivs[0].xpath('./p/a/@href').extract()
            pageItem['rightLink'] = tagNavDivs[1].xpath('./p/a/@href').extract()
        else:
            pageItem['rightLink'] = tagNavDivs[0].xpath('./p/a/@href').extract()

        return pageItem

    def to_left_page(self, response):
        '''
            左部爬取
        '''
        pageItem = self.extract_item(response)
        yield pageItem

        leftLinks = pageItem['leftLink']
        if len(leftLinks) == 1:
            leftLink = self.url_prefix + leftLinks[0]
            yield scrapy.Request(leftLink, callback=self.to_left_page)

    def to_right_page(self, response):
        '''
            右部爬取
        '''
        pageItem = self.extract_item(response)
        yield pageItem

        rightLinks = pageItem['rightLink']
        if len(rightLinks) == 1:
            rightLink = self.url_prefix + rightLinks[0]
            yield scrapy.Request(rightLink, callback=self.to_right_page)

4 執(zhí)行爬蟲

$> crapy crawl gank

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子默伍,更是在濱河造成了極大的恐慌惫东,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宏娄,死亡現(xiàn)場(chǎng)離奇詭異问裕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)孵坚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門粮宛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卖宠,你說我怎么就攤上這事巍杈。” “怎么了扛伍?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵筷畦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我刺洒,道長(zhǎng)鳖宾,這世上最難降的妖魔是什么吼砂? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮鼎文,結(jié)果婚禮上渔肩,老公的妹妹穿的比我還像新娘。我一直安慰自己漂问,他們只是感情好赖瞒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚤假,像睡著了一般栏饮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷仰,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天袍嬉,我揣著相機(jī)與錄音,去河邊找鬼灶平。 笑死伺通,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逢享。 我是一名探鬼主播罐监,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瞒爬!你這毒婦竟也來了弓柱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤侧但,失蹤者是張志新(化名)和其女友劉穎矢空,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禀横,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屁药,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柏锄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酿箭。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖趾娃,靈堂內(nèi)的尸體忽然破棺而出缭嫡,到底是詐尸還是另有隱情,我是刑警寧澤茫舶,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布械巡,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏讥耗。R本人自食惡果不足惜有勾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望古程。 院中可真熱鬧蔼卡,春花似錦、人聲如沸挣磨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茁裙。三九已至塘砸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晤锥,已是汗流浹背掉蔬。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矾瘾,地道東北人女轿。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像壕翩,于是被迫代替她去往敵國(guó)和親蛉迹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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

  • 爬取干貨集中營(yíng)數(shù)據(jù)(1) http://gank.io/ 得到妹紙圖 ??? 新建Scrapy項(xiàng)目:在你的scra...
    甚了閱讀 590評(píng)論 1 2
  • 爬取干貨集中營(yíng)數(shù)據(jù)(2) http://gank.io/ 得到更多妹紙圖 ??? 還記得上一次抓住的妹子嗎放妈。爬取干...
    甚了閱讀 266評(píng)論 0 0
  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 12,696評(píng)論 4 46
  • 這兩天摸索了下scrapy北救,剛看文檔的時(shí)候覺得有點(diǎn)生無可戀,scrapy框架個(gè)人還是覺得比較難懂的大猛,需要學(xué)習(xí)的地方...
    Treehl閱讀 5,631評(píng)論 7 10
  • 厄加特憑借Q的短CD配合上巫妖之禍的加成扭倾,E中人之后淀零,QAQA輸出還是很高的挽绩,對(duì)面如果要反打還可以開W,盾還是很厚...
    忘憂蠱soulmate閱讀 371評(píng)論 0 0