| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/usr/bin/env python3
- from os import path
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.common.keys import Keys
- import time
- from multiprocessing import Process, SimpleQueue
- q = SimpleQueue()
- def setup_driver():
- ff = False
-
- if ff:
- driver = webdriver.Firefox()
- else:
- chromepath = "/usr/lib/chromium/chromedriver"
- if path.isfile("/usr/bin/chromedriver"):
- chromepath = "/usr/bin/chromedriver"
-
- driver = webdriver.Chrome(chromepath)
-
- driver.set_window_size(1366, 768)
- return driver
- def despegar():
- driver = setup_driver()
- WEB = 'https://www.despegar.com.ar/shop/flights/results/roundtrip/BUE/SCL/2017-12-15/2018-01-17/2/0/0?from=SB'
- driver.get(WEB)
- time.sleep(1)
- css = ".fare-price .amount.price-amount"
- prices = driver.find_elements_by_css_selector(css)
- ret = set()
- for p in prices:
- # print(p.text)
- ret.add(p.text)
- q.put( { 'despegar': sorted(list(ret)) } )
- driver.close()
- def almundo():
- driver = setup_driver()
- WEB = 'https://almundo.com.ar/flights/results?from=BUE,SCL&to=SCL,BUE&date=2017-12-15,2018-01-17&adults=2#stops=0'
- driver.get(WEB)
- time.sleep(1)
- css = ".bigger"
- prices = driver.find_elements_by_css_selector(css)
- ret = set()
- for p in prices:
- # print(p.text)
- ret.add(p.text)
- q.put( { 'almundo': sorted(list(ret)) } )
- driver.close()
- def avantrip():
- driver = setup_driver()
- WEB = 'http://www.avantrip.com/vuelos/santiago-de-chile-desde-buenos-aires?av-seleccion-grupo=on&isMulticity=false&destinationFromId%5B0%5D=BUE&round_trip=&destinationToId%5B0%5D=SCL&dateFrom%5B0%5D=15-12-2017&dateTo=17-01-2018&adults=2&children=0&babies=0&flightClass=NMO.GBL.SCL.ECO&hostname=www.avantrip.com'
- driver.get(WEB)
- time.sleep(10)
- # time.sleep(5)
- css = ".total[data-original]"
- prices = driver.find_elements_by_css_selector(css)
- ret = set()
- for p in prices:
- v = p.get_attribute("data-original")
- # print(v)
- ret.add(v)
- q.put( { 'avantrip': sorted(list(ret)) } )
- driver.close()
- if __name__ == '__main__':
- de = Process(target=despegar)
- av = Process(target=avantrip)
- al = Process(target=almundo)
- de.start()
- av.start()
- al.start()
- de.join()
- av.join()
- al.join()
- while not q.empty():
- print(q.get())
|