學院教師信息爬取報告(二)

關鍵詞:多重頁面數(shù)據爬取


在[學院教師信息爬取報告(一)][1]中,我們使用的是兩個爬蟲分別爬取同一網站的不同頁面蛙粘。而教師列表頁與詳情頁存在著大量的信息重復艰猬,所以將兩者綜合生成新的教師詳情列表數(shù)據是一個不錯的方案聪富。
[1]: http://www.reibang.com/writer#/notebooks/12252479/notes/12125419

定義元數(shù)據

根據將要爬取的頁面數(shù)據信息,在你建立的項目目錄items.py文件下定義你的item

class TeachersItem(scrapy.Item):
    introduction = scrapy.Field()
 #該數(shù)據來自教師詳情頁
    name = scrapy.Field() 
    title = scrapy.Field()
    subject = scrapy.Field()
    email = scrapy.Field()
#該四項數(shù)據來自教師列表頁

爬蟲代碼

import scrapy
from teacher.items import TeachersItem


class TeacherSpider(scrapy.Spider):
    name = 'Teachers'
    allowed_domains = ['ggglxy.scu.edu.cn']
    start_urls = ['http://ggglxy.scu.edu.cn/index.php?c=article&a=type&tid=18']

    def parse(self, response):
        teacher_urls = response.xpath('//ul[@class="teachers_ul mt20 cf"]/li[@class="fl"]')
        #該句是生成包含每個教師列表item的url列表
        for teacher_url in teacher_urls:
            item = TeachersItem()
            item['name'] = teacher_url.xpath('./div[@class="r fr"]/h3/text()').extract()
            item['title'] = teacher_url.xpath('./div[@class="r fr"]/p/text()').extract()
            item['subject'] = teacher_url.xpath('./div[@class="r fr"]/div[@class="desc"]/p[1]/text()').extract()
            item['email'] = teacher_url.xpath('./div[@class="r fr"]/div[@class="desc"]/p[2]/text()').extract()
            #該四項數(shù)據位于起始頁玻靡,爬取代碼位于parse函數(shù)內部
            urls = response.xpath('//ul[@class="teachers_ul mt20 cf"]/li[@class="fl"]/div[1]/a/@href').extract()
            #該句是生成包含每個教師詳情item的url列表剃浇,這里已經進入第二層級頁
            for url in urls:
                url = response.urljoin(url)
                #該句將url補全刀疙,生成完整的絕對路徑
                yield scrapy.Request(url, meta={'item': item}, callback = self.parse_teacher_x)
                #返回Request嗓袱,發(fā)送服務器請求奸披,此時使用meta傳值,回調parse_teacher_x函數(shù)

        next = response.xpath('//div[@class="pager cf tc pt10 pb10 mobile_dn"]/li[last()-1]/a/@href').extract_first()
        #該句構造分頁蝎土,這里last()函數(shù)僅適用于網頁結構良好的分頁视哑,此處next可看情況自己構造
        if next is not None:
            next = response.urljoin(next)
            yield scrapy.Request(next, callback = self.parse)

    def parse_teacher_x(self, response):
        item = response.meta['item']
        item['introduction'] = response.xpath('/html/body/div[3]/div[2]/div/div[1]/div[2]/div/text()').extract()
        yield  item

簡單說明:

  1. 正確獲取item各個數(shù)據項的urls列表,使用response.urljoin()生成url絕對值瘟则,同時返回Request使其作為新地址入口(即其余未定義數(shù)據項入口)黎炉。
  • 使用meta傳已獲得的數(shù)據項的值,作為參數(shù)傳遞醋拧。
  • 回調函數(shù)的寫法慷嗜,自己要揣摩。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末丹壕,一起剝皮案震驚了整個濱河市庆械,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌菌赖,老刑警劉巖缭乘,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琉用,居然都是意外死亡堕绩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門邑时,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奴紧,“玉大人,你說我怎么就攤上這事晶丘∈虻” “怎么了唐含?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沫浆。 經常有香客問我捷枯,道長,這世上最難降的妖魔是什么专执? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任淮捆,我火速辦了婚禮,結果婚禮上他炊,老公的妹妹穿的比我還像新娘争剿。我一直安慰自己已艰,他們只是感情好痊末,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哩掺,像睡著了一般凿叠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嚼吞,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天盒件,我揣著相機與錄音,去河邊找鬼舱禽。 笑死炒刁,一個胖子當著我的面吹牛,可吹牛的內容都是我干的誊稚。 我是一名探鬼主播翔始,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼里伯!你這毒婦竟也來了城瞎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤疾瓮,失蹤者是張志新(化名)和其女友劉穎脖镀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狼电,經...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蜒灰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肩碟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片强窖。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腾务,靈堂內的尸體忽然破棺而出毕骡,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布未巫,位于F島的核電站窿撬,受9級特大地震影響,放射性物質發(fā)生泄漏叙凡。R本人自食惡果不足惜劈伴,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望握爷。 院中可真熱鬧跛璧,春花似錦、人聲如沸新啼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燥撞。三九已至座柱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間物舒,已是汗流浹背色洞。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冠胯,地道東北人火诸。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像荠察,于是被迫代替她去往敵國和親置蜀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內容