クモの巣オブジェクトとパイプラインオブジェクトの関係は何ですか?
私は治療に取り組んでいます。含ま
class DynamicSQLlitePipeline(object):
@classmethod
def from_crawler(cls, crawler):
# Here, you get whatever value was passed through the "table" parameter
table = getattr(crawler.spider, "table")
return cls(table)
def __init__(self,table):
try:
db_path = "sqlite:///"+settings.SETTINGS_PATH+"\\data.db"
db = dataset.connect(db_path)
table_name = table[0:3] # FIRST 3 LETTERS
self.my_table = db[table_name]
私はhttps://doc.scrapy.org/en/latest/topics/api.html#crawler-apiを通読してきた、::
はScrapy APIへのメインエントリポイントがfrom_crawlerを通じて拡張に渡されたクローラオブジェクトであり、私はで始まるpipielineを持っていますクラスメソッド。このオブジェクトはすべてのScrapyコアコンポーネントへのアクセスを提供し、拡張機能がそれらにアクセスして機能をScrapyに引き込む唯一の方法です。
ただし、from_crawlerメソッドとクローラオブジェクトはまだ分かりません。クモの巣オブジェクトとパイプラインオブジェクトの関係は何ですか?どのようにクローラがインスタンス化されますか?スパイダーはクローラのサブクラスですか?私はPassing scrapy instance (not class) attribute to pipelineと尋ねましたが、どのように一緒にフィットするのか分かりません。
[scrapyのアーキテクチャ](https://doc.scrapy.org/en/latest/topics/architecture.html) – furas
ありがとうございますが、クローラはその図にありません。 – user61629
私が正しく理解していれば、 'クローラー'は画像を取得するためにエンジンを実行するオブジェクトです - URLを取得し、サーバーからデータを読み取り、データを解析するために 'spider'を使用し、パイプラインとミドルウェアを使用してデータを変更し、ファイルへの書き込み。 – furas