def __init__(self, url=env.URL, browser_path=env.BROWSER_PATH): """"Setting browser preferences to handle download pop-up""" scraping.profile = webdriver.FirefoxProfile() #scraping.profile = webdriver.FirefoxProfile('C:\\Users\\amahe6\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\wujk8139.default') #scraping.profile = webdriver.FirefoxProfile('C:\\Users\\amahe6\\AppData\\Local\\Mozilla\\Firefox\\Profiles\\wujk8139.default') scraping.profile.set_preference('browser.download.folderList', 2) scraping.profile.set_preference('browser.download.panel.shown', False) scraping.profile.set_preference( 'browser.download.manager.showWhenStarting', False) scraping.profile.set_preference('browser.download.dir', 'c:\\downloads') scraping.profile.set_preference( 'browser.helperApps.neverAsk.saveToDisk', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) scraping.profile.set_preference( 'browser.helperApps.neverAsk.openFile', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) # scraping.profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml') # scraping.profile.set_preference('browser.helperApps.neverAsk.openFile', 'text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml') try: scraping.driver = webdriver.Firefox( executable_path=browser_path, firefox_profile=scraping.profile) #scraping.driver = webdriver.Firefox(scraping.profile) scraping.driver.get(url) except Exception as e: logger.exception(e) scraping.driver.quit()
def insert(self, query): self.query = query try: logger.debug('Running query: ' + self.query) DBHandler.cursor.execute(self.query) DBHandler.db.commit() logger.info('Query executed') except: logger.exception('Query Failed') DBHandler.db.rollback()
def __init__(self, query='use python;'): try: DBHandler.db = MySQLdb.connect(env.DB_IP, env.DB_USER, env.DB_PASSWORD, env.DB_DATABASE) logger.info('Connection created !!') DBHandler.cursor = DBHandler.db.cursor() self.query = query logger.debug('Running query: ' + self.query) DBHandler.cursor.execute(self.query) except: logger.exception('Connecetion Failed')
def execute(self, query): self.query = query try: logger.debug('Running query: ' + self.query) DBHandler.cursor.execute(self.query) result = DBHandler.cursor.fetchall() return result except: result = 'Query Failed' logger.exception('Query Failed') return result
def export_to_excel(self, email, password, security='INFY'): self.email = email self.password = password self.security = security logger.info("******************************************************") logger.info('Clicking excel: ' + scraping.driver.current_url) try: scraping.driver.find_element_by_link_text( 'Export to Excel').click() time.sleep(3) logger.info('Registration Page: ' + scraping.driver.current_url) scraping.driver.find_element_by_link_text('Login here').click() time.sleep(2) logger.info('Entering login credentials: ' + scraping.driver.current_url) uname = scraping.driver.find_element_by_id('id_username') uname.send_keys(self.email) pwd = scraping.driver.find_element_by_id('id_password') pwd.send_keys(self.password) logger.info('Logging in') scraping.driver.find_element_by_tag_name('button').submit() time.sleep(2) logger.info(scraping.driver.current_url) logger.info('Clicking for excel') company = scraping.driver.find_element_by_tag_name('input') company.send_keys(self.security) time.sleep(2) company_list = scraping.driver.find_element_by_class_name( 'dropdown-menu') company_list.click() scraping.driver.find_element_by_tag_name('button').click() time.sleep(2) logger.info(scraping.driver.current_url) script_list = scraping.driver.find_elements_by_tag_name('h4') script_data = map(lambda x: x.text, script_list) logger.info(script_data) scraping.driver.find_element_by_link_text( 'Export to Excel').click() time.sleep(5) logger.info(scraping.driver.current_url) logger.info('CLicked...Check') except Exception as e: logger.exception(e) finally: logger.info( "******************************************************")
def read_from_xlsx(filename='Infosys.xlsx', sheet='Profit & Loss', cell_range=OrderedDict([('A14', 'J14'), ('A15', 'J15')])): """To read from excel downloaded""" xl = win32com.client.Dispatch('Excel.Application') try: filename = env.DOWNLOAD_DIR + '\\' + filename wb = xl.Workbooks.Open(Filename=filename, ReadOnly=1, Editable=True) ws = wb.Worksheets(sheet) for k, val in cell_range.items(): print(ws.Range(k + ':' + val).Value) except Exception as e: logger.exception(e) else: wb.Close(True)