David před 9 roky
revize
c95257b11a
2 změnil soubory, kde provedl 95 přidání a 0 odebrání
  1. 89 0
      tati.py
  2. 6 0
      tati.sh

+ 89 - 0
tati.py

@@ -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())

+ 6 - 0
tati.sh

@@ -0,0 +1,6 @@
+#!/bin/bash
+set -eu
+Xvfb :99 &
+PID=$!
+DISPLAY=:99 PYTHONIOENCODING="utf_8" python3 ./tati.py
+kill $PID