В настоящее время я учусь собирать данные с веб-сайтов с помощью 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')]
Мне интересно, какой будет «правильный» способ сделать это и почему:
- Используйте оператор if, чтобы проверить, загружены ли: данные затем выполните понимание списка else: попросите пользователя проверить
- В любом случае используйте try:, чтобы выполнить понимание списка, если оно не удалось, затем попросите пользователя проверить, загружены ли данные, а затем снова выполните понимание списка
- Есть ли «лучший» способ сделать это?
Я новичок в python и кодировании в целом, поэтому я также хотел знать, как вы определите «правильный путь»? Есть ли какие-то нормы программирования или, как некоторые говорят, pythoni c способ определить, как go о процессе?
PS: Я читал, что понимание списка медленное в python, поэтому, если Я не использовал понимание списка в примере кода, изменится ли ваш ответ?