Оптимальный способ использования try / except in python - PullRequest
0 голосов
/ 18 июня 2020

В настоящее время я учусь собирать данные с веб-сайтов с помощью python. Типы веб-сайтов, с которыми я работаю, медленные и перестают работать несколько раз в течение дня, из-за чего мне часто приходится использовать try / catch.

Например: (драйвер в этом случае, если chrome webdriver с селеном)

time.sleep(2)
try:
    dist_lst = [i.text for i in driver.find_element_by_xpath('//*[@id="cphBody_GridArrivalData"]').find_elements_by_tag_name('tr')]
except:
    input("Check if data is loaded")
    dist_lst = [i.text for i in driver.find_element_by_xpath('//*[@id="cphBody_GridArrivalData"]').find_elements_by_tag_name('tr')]

Мне интересно, какой будет «правильный» способ сделать это и почему:

  1. Используйте оператор if, чтобы проверить, загружены ли: данные затем выполните понимание списка else: попросите пользователя проверить
  2. В любом случае используйте try:, чтобы выполнить понимание списка, если оно не удалось, затем попросите пользователя проверить, загружены ли данные, а затем снова выполните понимание списка
  3. Есть ли «лучший» способ сделать это?

Я новичок в python и кодировании в целом, поэтому я также хотел знать, как вы определите «правильный путь»? Есть ли какие-то нормы программирования или, как некоторые говорят, pythoni c способ определить, как go о процессе?

PS: Я читал, что понимание списка медленное в python, поэтому, если Я не использовал понимание списка в примере кода, изменится ли ваш ответ?

1 Ответ

0 голосов
/ 18 июня 2020

Используйте while l oop, нарушая, если не исключение.

while True:
    try:
         dist_lst = [...]
         break
    except Exception:
        input("Check if data is loaded")
...