ITEM_PIPELINES = {
'dynamic_scraper.pipelines.DjangoImagesPipeline': 200,
'open_product.scraper.pipelines.PriceConverterPipeline': 300,
'dynamic_scraper.pipelines.ValidationPipeline': 400,
'open_product.scraper.pipelines.DjangoWriterPipeline': 800,
}
class DjangoWriterPipeline(object):
def process_item(self, item, spider):
if spider.conf['DO_ACTION']:
try:
item['source_detail'] = spider.ref_object
checker_rt = SchedulerRuntime(runtime_type='C')
checker_rt.save()
item['checker_runtime'] = checker_rt
item.save()
spider.action_successful = True
spider.log("Item saved to Django DB.", logging.INFO)
except IntegrityError as e:
spider.log(str(e), logging.ERROR)
raise DropItem("Missing attribute.")
return item
if spider.conf['DO_ACTION']:
try:
obj = MyDBTable.objects.get(url=spider.ref_object.url)
if getattr(obj, 'MyDBField')) != item['ScrapedField']:
obj.save()
spider.action_successful = True
spider.log("Item updated.", logging.INFO)
else:
spider.action_successful = False
raise DropItem("Item duplicated.")
--
Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der Gruppe "django-dynamic-scraper" abonniert haben.
Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von dieser Gruppe erhalten möchten, senden Sie eine E-Mail an django-dynamic-scraper+unsub...@googlegroups.com.
Weitere Optionen finden Sie unter https://groups.google.com/d/optout.