#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Author: Hendrik Schutter, mail@hendrikschutter.com Date of creation: 2022/05/31 Date of last modification: 2022/05/31 """ from bs4 import BeautifulSoup import datetime from tinydb import TinyDB, Query import urllib3 import sys import scrape_listing as sl import search_eBay as se if __name__ == "__main__": seller_db = TinyDB("seller_db.json") database_lenght = len(seller_db.all()) if database_lenght == 0: print("Unable to load seller shop database!") sys.exit(-1) print("Loaded seller shop database: " + str(database_lenght) + " listings") for shop_listing_url in seller_db.all(): #print(shop_listing_url["epid"]) for retrieve_counter in range(5): try: shop_listing_data = sl.scrape_listing(shop_listing_url["epid"]) break except: #pass print("Unable to retrieve seller listing data from: " + shop_listing_url["epid"]) if shop_listing_data: print("\n\nCompare: " + shop_listing_data["title"] + " | " + str(shop_listing_data["price"]) + "€ | " + shop_listing_url["epid"]) competitor_listings = se.search(shop_listing_data["title"], 1) print("Found " + str(len(competitor_listings)) + " listings from competitors with term: " + shop_listing_data["title"]) sys.stdout.flush() for competitor_listing_url in competitor_listings: #print(competitor_listing_url) #print(shop_listing_url["epid"]) if competitor_listing_url == shop_listing_url["epid"]: #print("Found listing from sellers shop --> ignore") break #else: #print("not from own shop") for retrieve_counter_competitor in range(5): try: #print("scraping : " + competitor_listing_url) competitor_listing_data = sl.scrape_listing(competitor_listing_url) break except: pass #print("Unable to retrieve competitor listing data from: " + competitor_listing_url) if competitor_listing_data: #print(competitor_listing_data["price"]) if competitor_listing_data["price"] < shop_listing_data["price"]: print("found cheaper competitor: " + str(competitor_listing_data["price"]) + "€ instead: " + str(shop_listing_data["price"]) + "€ ---> " + competitor_listing_url) #break