API часто показывает время ожидания запроса/

#python #api #flask #heroku

Вопрос:

Всем привет, я недавно создал api веб-скрейпинга, который возвращает мне некоторый URL-адрес, и это совершенно нормально, но у меня есть некоторые проблемы, с которыми я сталкиваюсь:-

  1. Требуется по крайней мере 5-10 секунд, чтобы показать результаты пользователю.
  2. Иногда приложение завершается неудачно, так как в нем указано время ожидания запроса.(Используя heroku для развертывания) вот мой код:-
     import flask
    
    from flask import request
    from selenium import webdriver
    import os
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    app = flask.Flask(__name__)
    
    @app.route('/', methods=['GET'])
    def home():
        url = request.args['url']
        mobile_emulation = { "deviceName": "iPhone 6/7/8" }
        op = webdriver.ChromeOptions()
        op.add_experimental_option("mobileEmulation", mobile_emulation)
        op.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
        op.add_argument("--headless")
        op.add_argument("--no-sandbox")
        op.add_argument("--disable-dev-sh-usage")
        driver = webdriver.Chrome(executable_path = 
        os.environ.get("CHROMEDRIVER_PATH"),chrome_options=op)
        driver.get(url)
        driver.implicitly_wait(29)
        driver.refresh()
        element = WebDriverWait(driver, 29).until(
        EC.presence_of_element_located((By.XPATH, '//video[@class="video-stream html5-main- 
        video"]')))
    
        video_source = element.get_attribute('src')
        return video_source
    if __name__ == "__main__":
         app.run(debug=True)
     

Комментарии:

1. Я не знаю, как вы можете сократить затраченное время, но ошибка тайм-аута вашего запроса может быть решена, если вы используете flask-socetIO.