在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Feed exports
Benchmarking
命令行工具(Command line tools)
下載器中間件(Downloader Middleware)
信號(Signals)
Telnet 終端(Telnet Console)
初窺 Scrapy
數(shù)據(jù)收集(Stats Collection)
Scrapyd
通用爬蟲(Broad Crawls)
Item Loaders
試驗階段特性
Scrapy 入門教程
自動限速(AutoThrottle)擴展
Settings
Scrapy 終端(Scrapy shell)
下載項目圖片
DjangoItem
調(diào)試(Debugging)Spiders
選擇器(Selectors)
Feed exports
Spiders Contracts
借助 Firefox 來爬取
Logging
Spiders
Ubuntu 軟件包
實踐經(jīng)驗(Common Practices)
安裝指南
Item Exporters
擴展(Extensions)
Items
Spider 中間件(Middleware)
異常(Exceptions)
例子
發(fā)送 email
架構(gòu)概覽
常見問題(FAQ)
Jobs:暫停,恢復(fù)爬蟲
核心 API
使用 Firebug 進行爬取
Item Pipeline
Link Extractors
Web Service
調(diào)試內(nèi)存溢出

Feed exports

新版功能。

實現(xiàn)爬蟲時最經(jīng)常提到的需求就是能合適的保存爬取到的數(shù)據(jù),或者說,生成一個帶有爬取數(shù)據(jù)的”輸出文件”(通常叫做”輸出 feed”),來供其他系統(tǒng)使用。

Scrapy 自帶了 Feed 輸出,并且支持多種序列化格式(serialization format)及存儲方式(storage backends)。

序列化方式(Serialization formats)

feed 輸出使用到了 Item exporters 。其自帶支持的類型有:

您也可以通過 FEED_EXPORTERS 設(shè)置擴展支持的屬性。

JSON

  • FEED_FORMAT: json
  • 使用的 exporter: JsonItemExporter
  • 大數(shù)據(jù)量情況下使用 JSON 請參見 這個警告

JSON lines

  • FEED_FORMAT: jsonlines
  • 使用的 exporter: JsonLinesItemExporter

CSV

  • FEED_FORMAT: csv
  • 使用的 exporter: CsvItemExporter

XML

  • FEED_FORMAT: xml
  • 使用的 exporter: XmlItemExporter

Pickle

  • FEED_FORMAT: pickle
  • 使用的 exporter: PickleItemExporter

Marshal

  • FEED_FORMAT: marshal
  • 使用的 exporter: MarshalItemExporter

存儲(Storages)

使用 feed 輸出時您可以通過使用 URI(通過 FEED_URI 設(shè)置) 來定義存儲端。feed 輸出支持 URI 方式支持的多種存儲后端類型。

自帶支持的存儲后端有:

  • 本地文件系統(tǒng)
  • FTP
  • S3 (需要 boto)
  • 標準輸出

有些存儲后端會因所需的外部庫未安裝而不可用。例如,S3 只有在 boto 庫安裝的情況下才可使用。

存儲 URI 參數(shù)

存儲 URI 也包含參數(shù)。當 feed 被創(chuàng)建時這些參數(shù)可以被覆蓋:

  • %(time)s - 當 feed 被創(chuàng)建時被 timestamp 覆蓋
  • %(name)s - 被 spider 的名字覆蓋

其他命名的參數(shù)會被 spider 同名的屬性所覆蓋。例如, 當 feed 被創(chuàng)建時, %(site_id)s 將會被 spider.site_id 屬性所覆蓋。

下面用一些例子來說明:

  • 存儲在 FTP,每個 spider 一個目錄:

    • ftp://user:password@ftp.example.com/scraping/feeds/%(name)s/%(time)s.json
  • 存儲在 S3,每一個 spider 一個目錄:

    • s3://mybucket/scraping/feeds/%(name)s/%(time)s.json

存儲端(Storage backends)

本地文件系統(tǒng)

將 feed 存儲在本地系統(tǒng)。

  • URI scheme: file
  • URI 樣例: file:///tmp/export.csv
  • 需要的外部依賴庫:none

注意: (只有)存儲在本地文件系統(tǒng)時,您可以指定一個絕對路徑 /tmp/export.csv 并忽略協(xié)議(scheme)。不過這僅僅只能在 Unix 系統(tǒng)中工作。

FTP

將 feed 存儲在 FTP 服務(wù)器。

  • URI scheme:ftp
  • URI 樣例:ftp://user:pass@ftp.example.com/path/to/export.csv
  • 需要的外部依賴庫:none

S3

將 feed 存儲在 Amazon S3 。

  • URI scheme: s3
  • URI 樣例:
    • s3://mybucket/path/to/export.csv
    • s3://aws_key:aws_secret@mybucket/path/to/export.csv
  • 需要的外部依賴庫: boto

您可以通過在 URI 中傳遞 user/pass 來完成 AWS 認證,或者也可以通過下列的設(shè)置來完成:

AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY

標準輸出

feed 輸出到 Scrapy 進程的標準輸出。

  • URI scheme: stdout
  • URI 樣例: stdout:
  • 需要的外部依賴庫: none

設(shè)定(Settings)

這些是配置 feed 輸出的設(shè)定:

  • FEED_URI (必須)
  • FEED_FORMAT
  • FEED_STORAGES
  • FEED_EXPORTERS
  • FEED_STORE_EMPTY

FEED_URI

Default:None

輸出 feed 的 URI。支持的 URI 協(xié)議請參見存儲端(Storage backends)。

為了啟用 feed 輸出,該設(shè)定是必須的。

FEED_FORMAT

輸出 feed 的序列化格式。可用的值請參見序列化方式(Serialization formats)。

FEED_STORE_EMPTY

Default:False

是否輸出空 feed(沒有 item 的 feed)。

FEED_STORAGES

Default::{}

包含項目支持的額外 feed 存儲端的字典。 字典的鍵(key)是 URI 協(xié)議(scheme),值是存儲類(storage class)的路徑。

FEED_STORAGES_BASE

Default:

{
    '': 'scrapy.contrib.feedexport.FileFeedStorage',
    'file': 'scrapy.contrib.feedexport.FileFeedStorage',
    'stdout': 'scrapy.contrib.feedexport.StdoutFeedStorage',
    's3': 'scrapy.contrib.feedexport.S3FeedStorage',
    'ftp': 'scrapy.contrib.feedexport.FTPFeedStorage',
}

包含 Scrapy 內(nèi)置支持的 feed 存儲端的字典。

FEED_EXPORTERS

Default::{}

包含項目支持的額外輸出器(exporter)的字典。 該字典的鍵(key)是 URI 協(xié)議(scheme),值是 Item 輸出器(exporter) 類的路徑。

FEED_EXPORTERS_BASE

Default:

FEED_EXPORTERS_BASE = {
    'json': 'scrapy.contrib.exporter.JsonItemExporter',
    'jsonlines': 'scrapy.contrib.exporter.JsonLinesItemExporter',
    'csv': 'scrapy.contrib.exporter.CsvItemExporter',
    'xml': 'scrapy.contrib.exporter.XmlItemExporter',
    'marshal': 'scrapy.contrib.exporter.MarshalItemExporter',
}

包含 Scrapy 內(nèi)置支持的 feed 輸出器(exporter)的字典。

上一篇:異常(Exceptions)下一篇:Settings