def __init__(self, queries_list): super().__init__() self.qb = QueryBuilder() # queries must be of list type if type(queries_list) != list and type(queries_list) != dict: print('Error Mass Scraping queries must be of type list, or dictionary', type(queries_list) , 'is given!') exit() # set query self.qb.set_query(queries_list) self.queries = self.qb.get_query()
def __init__(self, query): super().__init__() self.db = QueryBuilder() # query must be type of string if type(query) != str: print('Error Details Scraping query must be of type string,', type(query), 'given!') exit() # set query self.db.set_query(query) self.query = self.db.get_query()
class MassScraping(Scrap): def __init__(self, queries_list): super().__init__() self.qb = QueryBuilder() # queries must be of list type if type(queries_list) != list and type(queries_list) != dict: print( 'Error Mass Scraping queries must be of type list, or dictionary', type(queries_list), 'is given!') exit() # set query self.qb.set_query(queries_list) self.queries = self.qb.get_query() def start(self, ask_for_rerun=False): """ Start running mass scraping, you can prompt every saved query and ask for rerun the query again by setting the "ask_for_rerun" option to True <default: False> :param ask_for_rerun: :return: """ for query in self.queries: # query check if type(query) == dict: result = self.qb.check_query(query['query']) else: result = self.qb.check_query(query) if result: print(f'"{query}" query already performed on: {result[2]}') # Prompt the user for rerun the query if ask_for_rerun: rerun = input( "Do you like to perform this query again?[Yes|No] " ).lower() while rerun != 'yes' and rerun != 'no': rerun = input( "Do you like to perform this query again?[Yes|No] " ).lower() if rerun == 'yes': self.run(query) else: continue else: self.run(query)
class DetailsScraping(Scrap): def __init__(self, query): super().__init__() self.db = QueryBuilder() # query must be type of string if type(query) != str: print('Error Details Scraping query must be of type string,', type(query), 'given!') exit() # set query self.db.set_query(query) self.query = self.db.get_query() def start(self, display=False): # TODO:: Code the "display data" option. if self.db.check_query(self.query): print(f'"{self.query}" query already done!') else: self.run(self.query)