Example #1
0
    def process_item(self, item, spider):

        from cars.models import Car, Price

        # Creating model instances and saving them to DB
        print(
            "Entering process_item method, and attempting to create a car object"
        )

        if item['Finn_kode'] in spider.codes:
            print('This is a crappy car.')
            car = Car.objects.filter(Finn_kode=item['Finn_kode']).get()
            temp_age = timezone.now() - car.created_at
            print('Age: {}'.format(temp_age))
            car.last_updated = timezone.now()
            if car.age < temp_age.days:
                print('New age {}'.format(temp_age))
                car.age = temp_age.days
            if car.solgt != item['solgt']:
                print("Marking car as sold")
                car.solgt = item['solgt']
            if car.removed != item['removed']:
                print('Marking car as removed')
                car.removed = item['removed']
            car.save()
        else:
            print("{} is not in the DB".format(item['Finn_kode']))
            # Consider: https://stackoverflow.com/questions/8372703/how-can-i-use-different-pipelines-for-different-spiders-in-a-single-scrapy-proje
            car = Car()

            # Finn
            car.Finn_kode = item['Finn_kode']

            # General info
            car.Antalldører = item['Antalldører']
            car.Antalleiere = item['Antalleiere']
            car.Antallseter = item['Antallseter']
            car.Årsavgift = item['Årsavgift']
            car.Årsmodell = item['Årsmodell']
            car.Avgiftsklasse = item['Avgiftsklasse']
            car.Bilenståri = item['Bilenståri']
            car.ChassisnrVIN = item['ChassisnrVIN']
            car.CO2utslipp = item['CO2utslipp']
            car.Drivstoff = item['Drivstoff']
            car.Effekt = item['Effekt']
            car.Farge = item['Farge']
            car.Fargebeskrivelse = item['Fargebeskrivelse']
            car.foorstegangregistrert = item['foorstegangregistrert']
            car.Girkasse = item['Girkasse']
            car.header = item['header']
            car.Hjuldrift = item['Hjuldrift']
            car.Karosseri = item['Karosseri']
            car.Kmstand = item['Kmstand']
            car.last_updated = timezone.now()
            car.name = item['name']
            car.Omregistrering = item['Omregistrering']
            car.Priseksomreg = item['Priseksomreg']
            car.Regnr = item['Regnr']
            car.Salgsform = item['Salgsform']
            car.Sylindervolum = item['Sylindervolum']
            car.totalpris = item['totalpris']
            car.Vekt = item['Vekt']
            car.solgt = item['solgt']

            car.RekkeviddeWLTP = item['RekkeviddeWLTP']
            car.Batterikapasitet = item['Batterikapasitet']

            # Farger
            car.Interiørfarge = item['Interiørfarge']

            print(car)

            car.save()

        price = Price()
        price.date = date.today()
        price.price = item['totalpris']
        price.car = car

        price.save()

        return item