tati.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/usr/bin/env python3
  2. from os import path
  3. from selenium import webdriver
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. from selenium.webdriver.support import expected_conditions as EC
  7. from selenium.webdriver.common.keys import Keys
  8. import time
  9. from multiprocessing import Process, SimpleQueue
  10. q = SimpleQueue()
  11. def setup_driver():
  12. ff = False
  13. if ff:
  14. driver = webdriver.Firefox()
  15. else:
  16. chromepath = "/usr/lib/chromium/chromedriver"
  17. if path.isfile("/usr/bin/chromedriver"):
  18. chromepath = "/usr/bin/chromedriver"
  19. driver = webdriver.Chrome(chromepath)
  20. driver.set_window_size(1366, 768)
  21. return driver
  22. def despegar():
  23. driver = setup_driver()
  24. WEB = 'https://www.despegar.com.ar/shop/flights/results/roundtrip/BUE/SCL/2017-12-15/2018-01-17/2/0/0?from=SB'
  25. driver.get(WEB)
  26. time.sleep(10)
  27. css = ".fare-price .amount.price-amount"
  28. prices = driver.find_elements_by_css_selector(css)
  29. ret = set()
  30. for p in prices:
  31. # print(p.text)
  32. ret.add(int(p.text.replace(".", "")))
  33. q.put( { 'despegar': sorted(list(ret)) } )
  34. driver.close()
  35. def almundo():
  36. driver = setup_driver()
  37. WEB = 'https://almundo.com.ar/flights/results?from=BUE,SCL&to=SCL,BUE&date=2017-12-15,2018-01-17&adults=2#stops=0'
  38. driver.get(WEB)
  39. time.sleep(10)
  40. css = ".bigger"
  41. prices = driver.find_elements_by_css_selector(css)
  42. ret = set()
  43. for p in prices:
  44. # print(p.text)
  45. ret.add(int(p.text.replace(".", "")))
  46. q.put( { 'almundo': sorted(list(ret)) } )
  47. driver.close()
  48. def avantrip():
  49. driver = setup_driver()
  50. 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'
  51. driver.get(WEB)
  52. time.sleep(10)
  53. # time.sleep(5)
  54. css = ".total[data-original]"
  55. prices = driver.find_elements_by_css_selector(css)
  56. ret = set()
  57. for p in prices:
  58. v = p.get_attribute("data-original").replace(".", "")
  59. # print(v)
  60. ret.add(int(v))
  61. q.put( { 'avantrip': sorted(list(ret)) } )
  62. driver.close()
  63. if __name__ == '__main__':
  64. de = Process(target=despegar)
  65. av = Process(target=avantrip)
  66. al = Process(target=almundo)
  67. de.start()
  68. av.start()
  69. al.start()
  70. de.join()
  71. av.join()
  72. al.join()
  73. out = {}
  74. print("----")
  75. while not q.empty():
  76. out.update(q.get())
  77. from pprint import pprint
  78. pprint(out)
  79. print("====")