1.創建項目
scrapy startproject myproject
該命令將會在 myproject 目錄中創建一個 Scrapy 項目。接下來,進入到項目目錄中:
cd myproject
這時候您就可以使用 scrapy 命令來管理和控制您的項目了。
2.控制項目
您可以在您的項目中使用 scrapy 工具來對其進行控制和管理。
比如,創建一個新的 spider:
scrapy genspider mydomain mydomain.com
這時,你就創建了一個命名為 mydomain 的 spider,其默認代碼如下:
# -*- 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 **
- 語法: scrapy startproject <project_name>
- 是否需要項目: no
- 作用:在 project_name 文件夾下創建一個名為 project_name 的 Scrapy 項目
** genspider **
- 語法: scrapy genspider [-t template] <name> <domain>
- 是否需要項目: yes
- 作用:在當前項目中創建 spider
** crawl **
- 語法: scrapy crawl <spider>
- 是否需要項目: yes
- 作用:使用 spider 進行爬取。
** check **
- 語法: scrapy check [-l] <spider>
- 是否需要項目: yes
- 作用:運行 contract 檢查
** list **
- 語法: scrapy list
- 是否需要項目: yes
- 作用:列出當前項目中所有可用的 spider
edit
- 語法: scrapy edit <spider>
- 是否需要項目: yes
- 使用 EDITOR
中設定的編輯器編輯給定的spider。
該命令僅僅是提供一個快捷方式。開發者可以自由選擇其他工具或者IDE來編寫調試spider。
fetch
- 語法: scrapy fetch <url>
- 是否需要項目: no
- 作用:使用Scrapy下載器(downloader)下載給定的URL,并將獲取到的內容送到標準輸出。
該命令以spider下載頁面的方式獲取頁面。例如,如果spider有 USER_AGENT 屬性修改了 User Agent,該命令將會使用該屬性。因此,您可以使用該命令來查看spider如何獲取某個特定頁面。該命令如果非項目中運行則會使用默認Scrapy downloader設定。
例子:
$ scrapy fetch --nolog http://www.example.com/some/page.html
[ ... html content here ... ]
view
- 語法: scrapy view <url>
- 是否需要項目: no
- 作用:在瀏覽器中打開給定的URL,并以Scrapy spider獲取到的形式展現。 有些時候spider獲取到的頁面和普通用戶看到的并不相同。 因此該命令可以用來檢查spider所獲取到的頁面,并確認這是您所期望的。
例子:
$ scrapy view http://www.example.com/some/page.html
[ ... browser starts ... ]
shell
- 語法: scrapy shell [url]
- 是否需要項目: no
- 作用:以給定的URL(如果給出)或者空(沒有給出URL)啟動Scrapy shell。 查看 Scrapy終端(Scrapy shell) 獲取更多信息。
例子:
$ scrapy shell http://www.example.com/some/page.html
[ ... scrapy shell starts ... ]
parse
- 語法: scrapy parse <url> [options]
- 是否需要項目: yes
- 作用:獲取給定的URL并使用相應的spider分析處理。如果您提供 --callback 選項,則使用spider的該方法處理,否則使用 parse 。
支持的選項:
-
--spider=SPIDER
: 跳過自動檢測spider并強制使用特定的spider -
--a NAME=VALUE
: 設置spider的參數(可能被重復) -
--callback
or-c
: spider中用于解析返回(response)的回調函數 -
--pipelines
: 在pipeline中處理item -
--rules
or-r
: 使用 CrawlSpider
規則來發現用來解析返回(response)的回調函數 -
--noitems
: 不顯示爬取到的item -
--nolinks
: 不顯示提取到的鏈接 -
--nocolour
: 避免使用pygments對輸出著色 -
--depth
or-d
: 指定跟進鏈接請求的層次數(默認: 1) -
--verbose
or-v
: 顯示每個請求的詳細信息
settings
- 語法: scrapy settings [options]
- 是否需要項目: no
- 作用:獲取Scrapy的設定,在項目中運行時,該命令將會輸出項目的設定值,否則輸出Scrapy默認設定。
例子:
$ scrapy settings --get BOT_NAME
myproject