Scrapy 入門 - Part 1

創(chuàng)建項目

利用scrapy命令行創(chuàng)建一個名為“tutorial”的項目

scrapy startproject tutorial

生成的目錄格式為

tutorial/
    scrapy.cfg #項目配置文件
    tutorial/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/ #放置spider代碼的目錄.
            __init__.py
            ...

定義Item

Item是保存爬取到的內(nèi)容的容器漫谷,就像是Python中的dict
類似在ORM中做的一樣,可以通過創(chuàng)建一個 scrapy.Item 類, 并且定義類型為 scrapy.Field 的類屬性來定義一個Item罐旗。

Sample of /tutorial/items.py

import scrapy
import time

#LianjiaItem繼承自scrapy.Item
class LianjiaItem(scrapy.Item):

    #所有想要爬取的字段都是scrapy.Field類型
    _id = scrapy.Field()
    title = scrapy.Field()
    acreage = scrapy.Field()
    cityCode = scrapy.Field()
    districtName = scrapy.Field()
    face = scrapy.Field()
    floor_state = scrapy.Field()
    houseSellId = scrapy.Field()
    latitude = scrapy.Field()
    longitude = scrapy.Field()
    hall = scrapy.Field()
    metroRemark =  scrapy.Field()
    plateName = scrapy.Field()
    propertyName = scrapy.Field()
    referAvgPrice = scrapy.Field()
    room = scrapy.Field()
    showPrice = scrapy.Field()
    unitPrice = scrapy.Field()
    title = scrapy.Field()
    tags = scrapy.Field()
    crawl_date = scrapy.Field()

編寫爬蟲(Spider)

為了創(chuàng)建一個Spider平匈,必須繼承 scrapy.Spider 類腮考, 且定義以下三個屬性:

  • name: 用于區(qū)別Spider忘巧。 該名字必須是唯一的,不可以為不同的Spider設定相同的名字。
  • start_urls: 包含了Spider在啟動時進行爬取的url列表髓抑。 因此咙崎,第一個被獲取到的頁面將是其中之一。 后續(xù)的URL則從初始的URL獲取到的數(shù)據(jù)中提取吨拍。
  • parse()
    是spider的一個方法褪猛。 被調(diào)用時,每個初始URL完成下載后生成的 Response 對象將會作為唯一的參數(shù)傳遞給該函數(shù)羹饰。 該方法負責解析返回的數(shù)據(jù)(response data)伊滋,提取數(shù)據(jù)(生成item)以及生成需要進一步處理的URL的 Request
    對象。

Sample of Spider.py

import scrapy

class LianjiaSpider(scrapy.spiders.Spider):
    name = "lianjia_spider"
    allowed_domains = ["lianjia.com"]
    start_urls = ["http://bj.lianjia.com/fangjia/" ]

    def parse(self, response):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)

Scrapy為Spider的 start_urls 屬性中的每個URL創(chuàng)建了 scrapy.Request 對象队秩,并將 parse
方法作為回調(diào)函數(shù)(callback)賦值給了Request笑旺。
Request對象經(jīng)過調(diào)度,執(zhí)行生成 scrapy.http.Response 對象并送回給spider parse() 方法馍资。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筒主,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸟蟹,更是在濱河造成了極大的恐慌乌妙,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件建钥,死亡現(xiàn)場離奇詭異藤韵,居然都是意外死亡,警方通過查閱死者的電腦和手機熊经,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門泽艘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人镐依,你說我怎么就攤上這事匹涮。” “怎么了槐壳?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵焕盟,是天一觀的道長。 經(jīng)常有香客問我宏粤,道長,這世上最難降的妖魔是什么灼卢? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任绍哎,我火速辦了婚禮,結果婚禮上鞋真,老公的妹妹穿的比我還像新娘崇堰。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布海诲。 她就那樣靜靜地躺著繁莹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪特幔。 梳的紋絲不亂的頭發(fā)上咨演,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音蚯斯,去河邊找鬼薄风。 笑死,一個胖子當著我的面吹牛拍嵌,可吹牛的內(nèi)容都是我干的遭赂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼横辆,長吁一口氣:“原來是場噩夢啊……” “哼撇他!你這毒婦竟也來了?” 一聲冷哼從身側響起狈蚤,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤困肩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后炫惩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僻弹,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年他嚷,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹋绽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡筋蓖,死狀恐怖卸耘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粘咖,我是刑警寧澤蚣抗,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站瓮下,受9級特大地震影響翰铡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讽坏,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一锭魔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧路呜,春花似錦迷捧、人聲如沸织咧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笙蒙。三九已至,卻和暖如春庆锦,著一層夾襖步出監(jiān)牢的瞬間捅位,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工肥荔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绿渣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓燕耿,卻偏偏與公主長得像中符,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子誉帅,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

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

  • scrapy學習筆記(有示例版) 我的博客 scrapy學習筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 12,696評論 4 46
  • 總結一下之前的spider淀散,總的來說,Spider類就是定義了如何爬取某個(或某些)網(wǎng)站蚜锨。包括了爬取的動作以及如何...
    王小魚鱻閱讀 1,231評論 0 2
  • Python版本管理:pyenv和pyenv-virtualenvScrapy爬蟲入門教程一 安裝和基本使用Scr...
    inke閱讀 35,297評論 7 93
  • 想你的時候档插,黃昏 收攏于群山 進出的車流載著團聚之心,閃過燈下冷清的街道 我不再關心這座繁華的空城 遠在丘陵的山村...
    四川虬髯客閱讀 152評論 12 6
  • 我撐著一葉扁舟 去看你 因為你在對岸 風從上游擊來 把我的身體和小舟晃得厲害 而你已不在 風沒有停 而我終滑向海 ...
    雅雀無音閱讀 296評論 1 8