def f_netmeds(medicine): pass URL = "https://www.netmeds.com/" driver = getDriver() driver.get(URL) delay = 4 data = [{'link': '#', 'name': '', 'price': ''}] * 5 # return data try: driver.find_element_by_id('search').send_keys(' '.join(medicine)) driver.find_element_by_id('search').send_keys(Keys.ENTER) try: WebDriverWait(driver, delay).until( EC.presence_of_element_located((By.CLASS_NAME, 'sear-name'))) boxes = driver.find_elements_by_class_name('drug_list') for i, box in enumerate(boxes): data_obj = {'link': '#', 'name': '', 'price': ''} obj = box.find_element_by_class_name( 'drug_c').find_element_by_tag_name('a') data_obj['link'] = obj.get_attribute('href') data_obj['name'] = obj.find_element_by_class_name('info').text data_obj['price'] = box.find_element_by_class_name( 'final-price').text data[i] = data_obj except: pass except: pass print(data) return data
def f_apollo(medicine): URL = "https://www.apollopharmacy.in/" driver = getDriver() driver.get(URL) delay = 4 data = [{'link': '#', 'name': '', 'price': ''}] * 5 try: driver.find_element_by_id('search').send_keys(' '.join(medicine)) driver.find_element_by_id('search').send_keys(Keys.ENTER) try: WebDriverWait(driver, delay).until( EC.presence_of_element_located( (By.CLASS_NAME, 'header-results-and-footer'))) boxes = driver.find_elements_by_class_name('product-link') for i, box in enumerate(boxes): data_obj = {'link': '#', 'name': '', 'price': ''} data_obj['link'] = box.get_attribute('href') data_obj['name'] = box.find_element_by_class_name( 'product-name').text data_obj['price'] = box.find_element_by_class_name( 'product-sale-price').text data[i] = data_obj except: pass except: pass return data
def f_netmeds(medicine): driver = getDriver() URL = "https://www.netmeds.com/catalogsearch/result?q=" + medicine driver.get(URL) try: pdt = driver.find_element_by_class_name("drug_list") a = pdt.text.split('\n')[:5] return a[0] +' '+ a[2] except NoSuchElementException: return medicine + ' not found'
def f_apollo(medicine): driver = getDriver() driver.get("https://www.apollopharmacy.in/tsearch?q="+medicine) try: unavailable = driver.find_element_by_class_name("no-products") return medicine + ' not found' except NoSuchElementException : pdt = driver.find_element_by_class_name("tagalys-product-tile") a = pdt.text.split('\n') return (a[0] + ' '+ a[1]).capitalize()
def get_img_src(medicine): driver = getDriver() driver.get('https://images.google.com') driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys( medicine) driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys( Keys.ENTER) src = driver.find_element_by_xpath( '//*[@id="islrg"]/div[1]/div[1]/a[1]/div[1]/img').get_attribute('src') return src
def f_pharmeasy(medicine): data = [ { 'link': '#', 'name': '', 'price': '' } ] * 5 URL = "https://pharmeasy.in/search/all?name=" + '+'.join(medicine) driver = getDriver() driver.get(URL) delay = 4 # return data # try: # # driver.find_element_by_xpath('//*[@id="content"]/div/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/div[1]/div/div[2]/input') # driver.find_element_by_class_name('jss34 _9Rsw_ undefined _2Saml') # driver.send_keys(' '.join(medicine)) # driver.send_keys(Keys.ENTER) # driver. print('searched\n') # //*[@id="content"]/div/div[3]/div/div/div[1]/div[1]/div/div[1]/div/div # //*[@id="content"]/div/div[3]/div/div/div[1]/div[1]/div/div[2] print(driver.current_url) try: WebDriverWait(driver, delay).until(EC.presence_of_element_located( (By.CLASS_NAME, '_3zq4I') )) print('found\n') boxes = driver.find_elements_by_class_name('_1jald') if len(boxes) > 0 : for i, box in enumerate(boxes): data_obj = { 'link': '#', 'name': '', 'price': '' } data_obj['link'] = box.find_element_by_class_name('_3o0NT._1NxW8').get_attribute('href') data_obj['name'] = box.find_element_by_class_name('ooufh').text # +'\n'+ box.find_element_by_class_name('_36aef').text try : data_obj['price'] = box.find_element_by_class_name('_1_yM9').text[:-1] except : data_obj['price'] = box.find_element_by_class_name('nFRb7').text data[i] = data_obj print(i) else : pass except: pass # except: # pass return data
def f_1mg(medicine): data = [{'link': '#', 'name': '', 'price': ''}] * 5 URL = "https://www.1mg.com/search/all?name=" + '%20'.join(medicine) driver = getDriver() driver.get(URL) delay = 4 # return data try: # # driver.find_element_by_xpath('//*[@id="content"]/div/div[2]/div[2]/div/div/div[1]/div[1]/div[2]/div[1]/div/div[2]/input') # driver.find_element_by_class_name('jss34 _9Rsw_ undefined _2Saml') # driver.send_keys(' '.join(medicine)) # driver.send_keys(Keys.ENTER) # driver. print('searched\n') # //*[@id="content"]/div/div[3]/div/div/div[1]/div[1]/div/div[1]/div/div # //*[@id="content"]/div/div[3]/div/div/div[1]/div[1]/div/div[2] print(driver.current_url) try: WebDriverWait(driver, delay).until( EC.presence_of_element_located( (By.CLASS_NAME, 'row.style__grid-container___3OfcL'))) # try : # driver.find_element_by_class_name('style__horizontal-card___1Zwmt') # print('found1\n') boxes = driver.find_elements_by_class_name( 'style__horizontal-card___1Zwmt') if len(boxes) > 0: for i, box in enumerate(boxes): data_obj = {'link': '#', 'name': '', 'price': ''} data_obj['link'] = box.find_element_by_tag_name( 'a').get_attribute('href') # data_obj['name'] = box.find_element_by_class_name('style__pro-title___3zxNC').text data_obj['name'] = box.find_element_by_class_name( 'style__product-description___1vPQe').text # # +'\n'+ box.find_element_by_class_name('_36aef').text # try : data_obj['price'] = box.find_element_by_class_name( 'style__price-tag___B2csA').text # except : # data_obj['price'] = box.find_element_by_class_name('nFRb7').text if data_obj['price'][0:3] == 'MRP': data_obj['price'] = data_obj['price'][3:] data[i] = data_obj data[i] = data_obj print(i) # except: else: # try: boxes = driver.find_elements_by_class_name( 'style__product-box___3oEU6') if len(boxes) > 0: for i, box in enumerate(boxes): data_obj = {'link': '#', 'name': '', 'price': ''} data_obj['link'] = box.find_element_by_tag_name( 'a').get_attribute('href') # data_obj['name'] = box.find_element_by_class_name('style__pro-title___3zxNC').text data_obj['name'] = box.find_element_by_class_name( 'style__product-description___zY35s').text # # +'\n'+ box.find_element_by_class_name('_36aef').text # try : data_obj['price'] = box.find_element_by_class_name( 'style__price-tag___KzOkY').text # except : # data_obj['price'] = box.find_element_by_class_name('nFRb7').text if data_obj['price'][0:3] == 'MRP': data_obj['price'] = data_obj['price'][3:] data[i] = data_obj print(i) # except: else: pass except: pass except: pass # if(data[]) return data
from flaskRun import getDriver, quitDriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException, NoSuchElementException from selenium.webdriver.common.keys import Keys def get_img_src(medicine): <<<<<<< HEAD driver = getDriver() driver.get('https://images.google.com'); driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys(' '.join(medicine)) print(' '.join(medicine)) ||||||| merged common ancestors driver= getDriver() driver.get('https://images.google.com'); driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys(' '.join(medicine)) print(' '.join(medicine)) ======= driver= getDriver() driver.get('https://images.google.com') driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys(medicine) >>>>>>> 6437bad05642e369b922632138056f88198e391f driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input').send_keys(Keys.ENTER) src = driver.find_element_by_xpath('//*[@id="islrg"]/div[1]/div[1]/a[1]/div[1]/img').get_attribute('src') return src def f_1mg(medicine): data = [
def compileData(medicine): global apollo, pharmeasy, netmeds, onemg, src global driver_src, driver_netmeds, driver_pharmeasy, driver_onemg, driver_apollo driver_src = getDriver() driver_netmeds = getDriver() driver_pharmeasy = getDriver() driver_onemg = getDriver() driver_apollo = getDriver() # print("Start time: ") # print(datetime.datetime.now().time()) start_time = datetime.now() # thread_apollo = Thread(target = f_apollo,args = (medicine,)) # thread_pharmeasy = Thread(target = f_pharmeasy,args = (medicine,)) # thread_netmeds = Thread(target = f_netmeds,args = (medicine,)) # thread_onemg = Thread(target = f_1mg,args = (medicine,)) # thread_src = Thread(target = get_img_src, args = (' '.join(medicine),)) # thread_apollo = Process(target = f_apollo,args = (medicine,)) # thread_pharmeasy = Process(target = f_pharmeasy,args = (medicine,)) # thread_netmeds = Process(target = f_netmeds,args = (medicine,)) # thread_onemg = Process(target = f_1mg,args = (medicine,)) # thread_src = Process(target = get_img_src, args = (' '.join(medicine),)) pool = Pool(4) thread_onemg = pool.apply_async(f_1mg, (medicine, )) thread_apollo = pool.apply_async(f_apollo, (medicine, )) thread_pharmeasy = pool.apply_async(f_pharmeasy, (medicine, )) thread_netmeds = pool.apply_async(f_netmeds, (medicine, )) # thread_src = pool.apply_async(get_img_src, (medicine, )) pool.close() pool.join() apollo = thread_apollo.get(10) pharmeasy = thread_pharmeasy.get(10) onemg = thread_onemg.get(10) netmeds = thread_netmeds.get(10) src = get_img_src(medicine) # src = thread_src.get(10) # thread_apollo.start() # thread_pharmeasy.start() # thread_netmeds.start() # thread_onemg.start() # thread_src.start() # thread_apollo.join() # thread_pharmeasy.join() # thread_netmeds.join() # thread_onemg.join() # thread_src.join() # f_apollo(medicine) # f_pharmeasy(medicine) # f_netmeds(medicine) # f_1mg(medicine) # print("End time: ") # print(datetime.datetime.now().time()) end_time = datetime.now() print('time taken: ', end=" ") print(end_time - start_time) data = [0] * 5 for i in range(5): data[i] = { 'apollo': apollo[i], 'pharmeasy': pharmeasy[i], 'netmeds': netmeds[i], 'onemg': onemg[i] } return data, src