1.創(chuàng)建項(xiàng)目
scrapy startproject myproject
該命令將會(huì)在 myproject 目錄中創(chuàng)建一個(gè) Scrapy 項(xiàng)目间驮。接下來(lái)磕洪,進(jìn)入到項(xiàng)目目錄中:
cd myproject
這時(shí)候您就可以使用 scrapy 命令來(lái)管理和控制您的項(xiàng)目了焙糟。
2.控制項(xiàng)目
您可以在您的項(xiàng)目中使用 scrapy 工具來(lái)對(duì)其進(jìn)行控制和管理炬藤。
比如额港,創(chuàng)建一個(gè)新的 spider:
scrapy genspider mydomain mydomain.com
這時(shí)饺窿,你就創(chuàng)建了一個(gè)命名為 mydomain 的 spider,其默認(rèn)代碼如下:
# -*- coding: utf-8 -*-
import scrapy
class MydomainSpider(scrapy.Spider):
name = "mydomain"
allowed_domains = ["mydomain.com"]
start_urls = (
'http://www.mydomain.com/',
)
def parse(self, response):
pass
3.Scrapy命令
** startproject **
- 語(yǔ)法: scrapy startproject <project_name>
- 是否需要項(xiàng)目: no
- 作用:在 project_name 文件夾下創(chuàng)建一個(gè)名為 project_name 的 Scrapy 項(xiàng)目
** genspider **
- 語(yǔ)法: scrapy genspider [-t template] <name> <domain>
- 是否需要項(xiàng)目: yes
- 作用:在當(dāng)前項(xiàng)目中創(chuàng)建 spider
** crawl **
- 語(yǔ)法: scrapy crawl <spider>
- 是否需要項(xiàng)目: yes
- 作用:使用 spider 進(jìn)行爬取移斩。
** check **
- 語(yǔ)法: scrapy check [-l] <spider>
- 是否需要項(xiàng)目: yes
- 作用:運(yùn)行 contract 檢查
** list **
- 語(yǔ)法: scrapy list
- 是否需要項(xiàng)目: yes
- 作用:列出當(dāng)前項(xiàng)目中所有可用的 spider
edit
- 語(yǔ)法: scrapy edit <spider>
- 是否需要項(xiàng)目: yes
- 使用 EDITOR
中設(shè)定的編輯器編輯給定的spider肚医。
該命令僅僅是提供一個(gè)快捷方式。開發(fā)者可以自由選擇其他工具或者IDE來(lái)編寫調(diào)試spider向瓷。
fetch
- 語(yǔ)法: scrapy fetch <url>
- 是否需要項(xiàng)目: no
- 作用:使用Scrapy下載器(downloader)下載給定的URL肠套,并將獲取到的內(nèi)容送到標(biāo)準(zhǔn)輸出。
該命令以spider下載頁(yè)面的方式獲取頁(yè)面风罩。例如糠排,如果spider有 USER_AGENT 屬性修改了 User Agent,該命令將會(huì)使用該屬性超升。因此入宦,您可以使用該命令來(lái)查看spider如何獲取某個(gè)特定頁(yè)面。該命令如果非項(xiàng)目中運(yùn)行則會(huì)使用默認(rèn)Scrapy downloader設(shè)定室琢。
例子:
$ scrapy fetch --nolog http://www.example.com/some/page.html
[ ... html content here ... ]
view
- 語(yǔ)法: scrapy view <url>
- 是否需要項(xiàng)目: no
- 作用:在瀏覽器中打開給定的URL乾闰,并以Scrapy spider獲取到的形式展現(xiàn)。 有些時(shí)候spider獲取到的頁(yè)面和普通用戶看到的并不相同盈滴。 因此該命令可以用來(lái)檢查spider所獲取到的頁(yè)面涯肩,并確認(rèn)這是您所期望的。
例子:
$ scrapy view http://www.example.com/some/page.html
[ ... browser starts ... ]
shell
- 語(yǔ)法: scrapy shell [url]
- 是否需要項(xiàng)目: no
- 作用:以給定的URL(如果給出)或者空(沒(méi)有給出URL)啟動(dòng)Scrapy shell巢钓。 查看 Scrapy終端(Scrapy shell) 獲取更多信息病苗。
例子:
$ scrapy shell http://www.example.com/some/page.html
[ ... scrapy shell starts ... ]
parse
- 語(yǔ)法: scrapy parse <url> [options]
- 是否需要項(xiàng)目: yes
- 作用:獲取給定的URL并使用相應(yīng)的spider分析處理伴澄。如果您提供 --callback 選項(xiàng)躏将,則使用spider的該方法處理锦募,否則使用 parse 赂蕴。
支持的選項(xiàng):
-
--spider=SPIDER
: 跳過(guò)自動(dòng)檢測(cè)spider并強(qiáng)制使用特定的spider -
--a NAME=VALUE
: 設(shè)置spider的參數(shù)(可能被重復(fù)) -
--callback
or-c
: spider中用于解析返回(response)的回調(diào)函數(shù) -
--pipelines
: 在pipeline中處理item -
--rules
or-r
: 使用 CrawlSpider
規(guī)則來(lái)發(fā)現(xiàn)用來(lái)解析返回(response)的回調(diào)函數(shù) -
--noitems
: 不顯示爬取到的item -
--nolinks
: 不顯示提取到的鏈接 -
--nocolour
: 避免使用pygments對(duì)輸出著色 -
--depth
or-d
: 指定跟進(jìn)鏈接請(qǐng)求的層次數(shù)(默認(rèn): 1) -
--verbose
or-v
: 顯示每個(gè)請(qǐng)求的詳細(xì)信息
settings
- 語(yǔ)法: scrapy settings [options]
- 是否需要項(xiàng)目: no
- 作用:獲取Scrapy的設(shè)定棱貌,在項(xiàng)目中運(yùn)行時(shí)蔓涧,該命令將會(huì)輸出項(xiàng)目的設(shè)定值耸峭,否則輸出Scrapy默認(rèn)設(shè)定隘谣。
例子:
$ scrapy settings --get BOT_NAME
myproject