|
|
@@ -0,0 +1,89 @@
|
|
|
+#!/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())
|