Scrapy提供了Feed Exports来保存抓取到的Item
,Feed Exports有几种序列化格式和几种存储方式。
存储方式:本地文件系统、FTP、S3、标准输出。由FEED_URI
选项指定。FEED_URI
里面可以有命令参数,例如,
ftp://user:password@ftp.example.com/scraping/feeds/%(name)s/%(time)s.json
其中,time由输出时的时间戳代替,而name则是爬虫的name属性。也可以有其它的命令参数,比如%(site_id)s
,此时爬虫需要有site_id属性。
序列化格式:JSON,JSON lines,CSV,XML,Pickle,Marshal。由FEED_FORMAT
选项指定,若没有指定,则根据FEED_URI
的后辍来猜测。
FEED_STORE_EMPTY
可以用来控制是否输出空的feed,比如没有Item
的feed。
可以用FEED_EXPORT_FIELDS
来控制输出的字段以及其顺序,如FEED_EXPORT_FIELDS = ["foo", "bar", "baz"]
。这点对于那些有固定的header栏的csv文件尤其有用。
最后,FEED_URI_PARAMS
可以用来定义一个对FEED_URI
里面的参数进行后处理的函数。