1
Ich bin auf der Suche nach einem einfachen Tutorial, wie Sie Elemente von scrapy zu Rethinkdb schreiben. Das Äquivalent kann für MongoDB here gefunden werden.Feed Rethinkdb mit scrapy
Ich bin auf der Suche nach einem einfachen Tutorial, wie Sie Elemente von scrapy zu Rethinkdb schreiben. Das Äquivalent kann für MongoDB here gefunden werden.Feed Rethinkdb mit scrapy
Hier ist eine Übersetzung von "Write items to MongoDB" Zeile für Zeile mit RethinkDB.
Ein paar Anmerkungen:
crawler.settings
gesetzt sind.process_item
‚s zweiten param item
ein Objekt oder dict
sein kann, so dass die .insert(dict(item))
Guss/Konvertierung ist wahrscheinlich notwendig.import rethinkdb as r
class RethinkDBPipeline(object):
table_name = 'scrapy_items'
def __init__(self, rethinkdb_uri, rethinkdb_port, rethinkdb_db):
self.rethinkdb_uri = rethinkdb_uri
self.rethinkdb_port = rethinkdb_port
self.rethinkdb_db = rethinkdb_db
@classmethod
def from_crawler(cls, crawler):
return cls(
rethinkdb_uri=crawler.settings.get('RETHINKDB_URI'),
rethinkdb_db=crawler.settings.get('RETHINKDB_DATABASE', 'items')
)
def open_spider(self, spider):
self.conn = r.connect(
host = self.rethinkdb_uri,
port = self.rethinkdb_port,
db = self.rethinkdb_db)
def close_spider(self, spider):
self.conn.close()
def process_item(self, item, spider):
r.table(self.table_name).insert(dict(item)).run(self.conn)
return item
danken Ihnen für Sie Code, leider war ich zu ihrer Umsetzung nicht in der Lage. Ich denke, ich muss mein Verständnis von RethinkDB zuerst vertiefen ... Crawler-Einstellungen werden in setting.py gesetzt – crocefisso
Was war der Fehler, der zurückkam? – dalanmiller
@crocefisso, lassen Sie mich wissen, wenn das schließlich funktioniert, würde ich gerne etwas veröffentlichen, das zeigt, wie RethinkDB mit scrapy basierend darauf aufgebaut wird! – dalanmiller