關(guān)于Scrapy如何安裝部署的文章已經(jīng)相當(dāng)多了,但是網(wǎng)上實(shí)戰(zhàn)的例子還不是很多,近來(lái)正好在學(xué)習(xí)該爬蟲(chóng)框架,就簡(jiǎn)單寫(xiě)了個(gè)Spider Demo來(lái)實(shí)踐。
作為硬件數(shù)碼控,我選擇了經(jīng)常光顧的中關(guān)村在線的手機(jī)頁(yè)面進(jìn)行爬取,大體思路如下圖所示。
1 # coding:utf-8 2 import scrapy 3 import re 4 import os 5 import sqlite3 6 from myspider.items import SpiderItem 7 8 9 class ZolSpider(scrapy.Spider):10 name = "zol"11 # allowed_domains = ["http://detail.zol.com.cn/"] # 用于限定爬取的服務(wù)器域名12 start_urls = [13 # 主要爬去中關(guān)村在線的手機(jī)信息頁(yè)面,考慮到是演示目的就僅僅爬了首頁(yè),其實(shí)爬分頁(yè)跟二級(jí)爬蟲(chóng)原理相同,出于節(jié)省時(shí)間目的這里就不爬了14 # 這里可以寫(xiě)多個(gè)入口URL15 "http://detail.zol.com.cn/cell_phone_index/subcate57_list_1.html"16 ]17 item = SpiderItem() # 沒(méi)法動(dòng)態(tài)創(chuàng)建,索性沒(méi)用上,用的meta在spider函數(shù)間傳值18 # 只是test一下就用sqlite吧,比較輕量化19 #database = sqlite3.connect(":memory:")20 database_file = os.path.dirname