Beispiel #1
0
def run_scraper(mls=INITIAL_MLS):
    misses = 0
    foundHit = False
    while (MISS_THRESHOLD > misses):
        try:
            existing_listing = Listing.get_listing(mls)
            listing = scrape_listing(mls)

            print 'Fetching Listing ID %s' % mls
            print 'Have existing listing? %s ' % (existing_listing is not None)

            if existing_listing:
                existing_listing.is_new = False
                if int(existing_listing.price) != listing.price:
                    existing_listing.price = listing.price
                    existing_listing.is_updated = True
                else:
                    existing_listing.is_updated = False
                existing_listing.save()
            else:
                if fits_criteria(listing):
                    print '%sHIT%s' % (bcolors.OKGREEN, bcolors.ENDC)
                    foundHit = True
                    listing.is_new = True
                    listing.save()
                else:
                    print '%sMISS. Count: %s%s' % (bcolors.WARNING, misses, bcolors.ENDC)
            mls = mls + 1
            misses = 0
        except ListingNotFound:
            existing_listing = Listing.get_listing(mls)
            mls = mls + 1
            misses = misses + 1
            if existing_listing:
                existing_listing.active = False
                existing_listing.last_scraped = datetime.now()
                existing_listing.save()
            else:
                print 'misses are %s ' % misses

    if foundHit:
        print '%sFound a Hit!%s' % (bcolors.HEADER, bcolors.ENDC)
    else:
        print '%sNo Hits this time.%s' % (bcolors.FAIL, bcolors.ENDC)