劉碩のScrapyノート(九、exporterエクスポート)
2094 ワード
scrapyの一般的なサポートエクスポートフォーマット:1.json 2.csv 3.xmlをエクスポートするときは、エクスポートされたファイルパス(-o)とデータフォーマット(-t)に注意してください.
一般的には「-t」を省略します.
次のコマンドを使用します(本のレイアウトが間違っています).
'export_を作成できますData'フォルダ(任意に命名可能)には'spiders_が含まれています.name'フォルダには、作成日に命名されたcsvファイルがあります.
コマンドラインの構成は煩雑ですが、settingsで設定することもできます.
1.FEED_URI:ファイルパスのエクスポート
2.FEED_FORMAT:エクスポートファイルのフォーマット
3.FEED_EXPORT_ENCODING:エクスポートファイルの符号化フォーマット(デフォルトでは、jsonはデジタル符号化、その他のフォーマットは'utf-8'符号化)
4.FEED_EXPORT_FIELDS:すべてのフィールドがデフォルトでエクスポートされ、フィールドがソートされます.
5.FEED_EXPORTERS:ユーザー定義Exporter辞書、新しいフォーマットを追加して使用:
本の例に従って、excelフォーマット(settingsと同じディレクトリ)を定義し、my_を新規作成します.exporters.pyファイル:
settingsで設定:
スキップコマンド:
コードはしばらく読めないので、後で理解します.
scrapy crawl -t json -o book1.json
一般的には「-t」を省略します.
scrapy crawl -o book1.json
次のコマンドを使用します(本のレイアウトが間違っています).
scrapy crawl books -o export_data\%(name)s\%(time
)s.csv
'export_を作成できますData'フォルダ(任意に命名可能)には'spiders_が含まれています.name'フォルダには、作成日に命名されたcsvファイルがあります.
コマンドラインの構成は煩雑ですが、settingsで設定することもできます.
1.FEED_URI:ファイルパスのエクスポート
FEED_URI='export_data\%(name)s.data'
2.FEED_FORMAT:エクスポートファイルのフォーマット
FEED_FORMAT='csv'
3.FEED_EXPORT_ENCODING:エクスポートファイルの符号化フォーマット(デフォルトでは、jsonはデジタル符号化、その他のフォーマットは'utf-8'符号化)
FEED_EXPORT_ENCODING='gbk'
4.FEED_EXPORT_FIELDS:すべてのフィールドがデフォルトでエクスポートされ、フィールドがソートされます.
FEED_EXPORT_FIELDS=['name','author','price']
5.FEED_EXPORTERS:ユーザー定義Exporter辞書、新しいフォーマットを追加して使用:
FEED_EXPORTERS={'excel':'my_project.my_exporters.ExcelItemExporter'}
本の例に従って、excelフォーマット(settingsと同じディレクトリ)を定義し、my_を新規作成します.exporters.pyファイル:
from scrapy.exporters import BaseItemExporter
import xlwt
class ExcelItemExporter(BaseItemExporter):
def __init__(self,file,**kwargs):
self._configure(kwargs)
self.file=file
self.wbook=xlwt.Workbook()
self.wsheet=self.wbook.add_sheet('scrapy')
self.row=0
def finish_exporting(self):
self.wbook.save(self.file)
def export_item(self, item):
fields=self._get_serialized_fields(item)
for col,v in enumerate(x for _,x in fields):
self.wsheet.write(self.row,col,v)
self.row+=1
settingsで設定:
FEED_EXPORTERS={'excel':'Book.my_exporters.ExcelItemExporter'}
スキップコマンド:
scrapy crawl books -t excel -o books.xls
コードはしばらく読めないので、後で理解します.