W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
以下是用于配置源導(dǎo)出的設(shè)置:
FEEDS (強(qiáng)制性)FEED_EXPORT_ENCODINGFEED_STORE_EMPTYFEED_EXPORT_FIELDSFEED_EXPORT_INDENTFEED_STORAGESFEED_STORAGE_FTP_ACTIVEFEED_STORAGE_S3_ACLFEED_EXPORTERSFEED_EXPORT_BATCH_ITEM_COUNT
2.1 新版功能.
違約: ?{{}}
?
一個(gè)字典,其中每個(gè)鍵都是一個(gè)feed URI(或 ?pathlib.Path
? 對象),每個(gè)值都是一個(gè)嵌套字典,其中包含特定提要的配置參數(shù)。
啟用提要導(dǎo)出功能需要此設(shè)置。
見 存儲后端 用于支持的URI方案。
例如::
{
'items.json': {
'format': 'json',
'encoding': 'utf8',
'store_empty': False,
'fields': None,
'indent': 4,
'item_export_kwargs': {
'export_empty_fields': True,
},
},
'/home/user/documents/items.xml': {
'format': 'xml',
'fields': ['name', 'price'],
'encoding': 'latin1',
'indent': 8,
},
pathlib.Path('items.csv'): {
'format': 'csv',
'fields': ['price', 'name'],
},
}
以下是接受的鍵和設(shè)置的列表,如果沒有為特定的源定義提供該鍵,則該設(shè)置用作回退值:
format
? : serialization format .此設(shè)置是必需的,沒有回退值。batch_item_count
? :回到 ?FEED_EXPORT_BATCH_ITEM_COUNT
? .encoding
? :回到 ?FEED_EXPORT_ENCODING
? .fields
? :回到 ?FEED_EXPORT_FIELDS
? .indent
? :回到 ?FEED_EXPORT_INDENT
? .item_export_kwargs
?: ?dict
? 對應(yīng)的關(guān)鍵字參數(shù) item exporter class .overwrite
? :如果文件已存在,是否覆蓋該文件 (?True
? )或附加到其內(nèi)容中 (?False
? )默認(rèn)值取決于 storage backend :False
?True
?注解
APPE
? FTP命令)。True
? (附加 is not supported )
False
? (不支持覆蓋)
store_empty
? :回到 ?FEED_STORE_EMPTY
? .
uri_params
? :回到 ?FEED_URI_PARAMS
? .
違約: ?None
?
要用于源的編碼。
如果未設(shè)置或設(shè)置為 ?None
? (默認(rèn))它對除JSON輸出外的所有內(nèi)容都使用UTF-8,JSON輸出使用安全的數(shù)字編碼。 (?\uXXXX
? 序列)出于歷史原因。
使用 ?utf-8
? 如果您也想要為JSON使用UTF-8。
違約: ?None
?
要導(dǎo)出的字段列表,可選。例子: FEED_EXPORT_FIELDS = ["foo", "bar", "baz"] .
使用feed_export_fields選項(xiàng)定義要導(dǎo)出的字段及其順序。
當(dāng)FEED_EXPORT_FIELDS為空或?None
?(默認(rèn)值)時(shí),Scrapy使用中定義的字段 item objects 你的蜘蛛屈服了。
如果導(dǎo)出器需要一組固定的字段(這是 CSV export format)和feed_export_字段為空或無,然后scrapy嘗試從導(dǎo)出的數(shù)據(jù)中推斷字段名-當(dāng)前它使用第一個(gè)項(xiàng)目中的字段名。
違約: ?0
?
用于在每個(gè)級別上縮進(jìn)輸出的空間量。如果 ?FEED_EXPORT_INDENT
? 是非負(fù)整數(shù),則數(shù)組元素和對象成員將以該縮進(jìn)級別進(jìn)行漂亮打印??s進(jìn)量 ?0
? (默認(rèn)值)或負(fù)數(shù),將把每個(gè)項(xiàng)目放到一個(gè)新行上。 ?None
? 選擇最緊湊的表示形式。
當(dāng)前僅由執(zhí)行 ?JsonItemExporter
? 和 ?XmlItemExporter
? ,即當(dāng)您要導(dǎo)出到 ?.json
? 或 ?.xml
? .
違約: ?False
?
是否導(dǎo)出空源(即沒有項(xiàng)的源)。
違約: ?{{}}
?
包含項(xiàng)目支持的其他提要存儲后端的dict。鍵是URI方案,值是指向存儲類的路徑。
違約: ?False
?
將源導(dǎo)出到FTP服務(wù)器時(shí)是否使用活動(dòng)連接模式 (?True
? )或者使用被動(dòng)連接模式 (?False
? ,默認(rèn))。
有關(guān)ftp連接模式的信息,請參閱 What is the difference between active and passive FTP? .
違約: ?''
? (空字符串)
包含項(xiàng)目導(dǎo)出到AmazonS3的源的自定義ACL的字符串。
有關(guān)可用值的完整列表,請?jiān)L問 Canned ACL 亞馬遜S3文檔部分。
違約::
{
'': 'scrapy.extensions.feedexport.FileFeedStorage',
'file': 'scrapy.extensions.feedexport.FileFeedStorage',
'stdout': 'scrapy.extensions.feedexport.StdoutFeedStorage',
's3': 'scrapy.extensions.feedexport.S3FeedStorage',
'ftp': 'scrapy.extensions.feedexport.FTPFeedStorage',
}
包含由Scrapy支持的內(nèi)置提要存儲后端的dict。您可以通過分配 ?None
? 到他們的URI方案 ?FEED_STORAGES
? . 例如,要禁用內(nèi)置FTP存儲后端(不替換),請將其放入 ?settings.py
? ::
FEED_STORAGES = {
'ftp': None,
}
違約: ?{{}}
?
包含項(xiàng)目支持的其他導(dǎo)出器的dict。鍵是序列化格式,值是指向 Item exporter 類。
違約::
{
'json': 'scrapy.exporters.JsonItemExporter',
'jsonlines': 'scrapy.exporters.JsonLinesItemExporter',
'jl': 'scrapy.exporters.JsonLinesItemExporter',
'csv': 'scrapy.exporters.CsvItemExporter',
'xml': 'scrapy.exporters.XmlItemExporter',
'marshal': 'scrapy.exporters.MarshalItemExporter',
'pickle': 'scrapy.exporters.PickleItemExporter',
}
包含由Scrapy支持的內(nèi)置飼料導(dǎo)出器的dict。您可以通過分配 ?None
? 到其序列化格式 ?FEED_EXPORTERS
? . 例如,要禁用內(nèi)置的csv導(dǎo)出器(不替換),請將其放入 ?settings.py
? ::
FEED_EXPORTERS = {
'csv': None,
}
違約: ?0
?
如果分配了一個(gè)大于 ?0
? ,Scrapy生成多個(gè)輸出文件,每個(gè)輸出文件中最多存儲指定數(shù)量的項(xiàng)。
生成多個(gè)輸出文件時(shí),必須在提要URI中至少使用以下一個(gè)占位符來指示如何生成不同的輸出文件名:
%(batch_time)s
? -在創(chuàng)建源時(shí)被時(shí)間戳替換(例如。 ?2020-03-28T14-45-08.237134
? )%(batch_id)05d
? (例如) ?3
? 變成 ?00003
? , ?123
? 變成 ?00123
? )例如,如果您的設(shè)置包括:
FEED_EXPORT_BATCH_ITEM_COUNT = 100
你的呢 ?crawl
? 命令行是:
scrapy crawl spidername -o "dirname/%(batch_id)d-filename%(batch_time)s.json"
上面的命令行可以生成如下目錄樹:
->projectname
-->dirname
--->1-filename2020-03-28T14-45-08.237134.json
--->2-filename2020-03-28T14-45-09.148903.json
--->3-filename2020-03-28T14-45-10.046092.json
其中第一個(gè)和第二個(gè)文件正好包含100個(gè)項(xiàng)目。最后一個(gè)包含100個(gè)項(xiàng)目或更少。
注解 某些FTP服務(wù)器可能不支持附加到文件( APPE FTP命令)。S3 : True (附加 is not supported ) 標(biāo)準(zhǔn)輸出 : False (不支持覆蓋) store_empty :回到 FEED_STORE_EMPTY . uri_params :回到 FEED_URI_PARAMS .
違約: ?None
?
包含函數(shù)導(dǎo)入路徑的字符串,用于設(shè)置要應(yīng)用的參數(shù) printf-style string formatting 到源URI。
函數(shù)簽名應(yīng)如下所示:
scrapy.extensions.feedexport.
uri_params
(params, spider)返回A ?dict
? 要應(yīng)用于提要URI的鍵值對 printf-style string formatting .
params (dict) -- 特定的默認(rèn)鍵值對:- batch_id
: ID of the file batch. See ?FEED_EXPORT_BATCH_ITEM_COUNT
?.
If ?FEED_EXPORT_BATCH_ITEM_COUNT
? is 0
, batch_id
is always 1
. - batch_time
:
UTC date and time, in ISO format with :
replaced with `` -. 看到了嗎 :setting:`FEED_EXPORT_BATCH_ITEM_COUNT` . - ``time
: batch_time
,微秒設(shè)置為 0
.
spider (scrapy.spiders.Spider) -- 源蜘蛛的飼料項(xiàng)目
例如,包括 ?name
? 源URI中源蜘蛛的:
FEED_URI_PARAMS
? 到您設(shè)置中的函數(shù)::# myproject/settings.py FEED_URI_PARAMS = 'myproject.utils.uri_params'%(spider_name)s
? 在你的源URI中:scrapy crawl <spider_name> -o "%(spider_name)s.jl"Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: