sql >> データベース >  >> NoSQL >> MongoDB

Scrapyスパイダーでパイプラインオブジェクトを取得する方法

    Scrapyパイプラインにはopen_spider があります スパイダーが初期化された後に実行されるメソッド。データベース接続、get_date()メソッド、またはパイプライン自体への参照をスパイダーに渡すことができます。コードを使用した後者の例は次のとおりです。

    # This is my Pipline
    class MongoDBPipeline(object):
        def __init__(self, mongodb_db=None, mongodb_collection=None):
            self.connection = pymongo.Connection(settings['MONGODB_SERVER'], settings['MONGODB_PORT'])
            ....
    
        def process_item(self, item, spider):
            ....
        def get_date(self):
            ....
    
        def open_spider(self, spider):
            spider.myPipeline = self
    

    次に、クモで:

    class Spider(Spider):
        name = "test"
    
        def __init__(self):
            self.myPipeline = None
    
        def parse(self, response):
            self.myPipeline.get_date()
    

    __init__()はないと思います ここではメソッドが必要ですが、初期化後にopen_spiderがメソッドを置き換えることを示すためにここに配置しました。



    1. Pymongo Regex$all複数の検索用語

    2. 配列のオブジェクトではなく、配列のオブジェクトのフィールドに対するMongodb $ in

    3. LINQを使用したMongoDBC#アグリゲーション

    4. クエリmongo:コレクションのすべてのドキュメントで配列の数を検索します