Python Web Scraping - уведомление по электронной почте при возникновении ошибки - PullRequest
0 голосов
/ 13 марта 2019

Мне дали некоторый код очистки веб-страниц на Python, и теперь мне нужно написать некоторый код, чтобы в случае возникновения ошибки он уведомлял кого-либо по электронной почте.Я нашел этот код в Интернете:

def send_email():
    to = request.form.get('to')
    if not to:
        return ('Please provide an email address in the "to" query string '
                'parameter.'), 400

    sg = sendgrid.SendGridAPIClient(apikey=SENDGRID_API_KEY)

    to_email = mail.Email(to)
    from_email = mail.Email(SENDGRID_SENDER)
    subject = 'This is a test email'
    content = mail.Content('text/plain', 'Example message.')
    message = mail.Mail(from_email, subject, to_email, content)

    response = sg.client.mail.send.post(request_body=message.get())

    if response.status_code != 202:
        return 'An error occurred: {}'.format(response.body), 500

    return 'Email sent.' 

Это то, что я должен использовать?Если нет, как лучше решить эту проблему?

Заранее спасибо.

1 Ответ

0 голосов
/ 13 марта 2019

Что я имел ввиду:

try: 
     # Web scrapping code    
except requests.packages.urllib3.exceptions.MaxRetryError as e:
     print repr(e)
     send_email()

ИЛИ

использовать except без указания пассивной обработки.

try: 
     # Web scrapping code    
except:
     send_email()

НО:

Из Руководства по стилю PEP-8 для Python :

При отлове исключений указывайте конкретные исключения всякий раз, когда возможно вместо использования голого исключением: предложение.

Пустое предложение кроме: будет перехватывать SystemExit и KeyboardInterrupt исключения, усложняющие прерывание программы с помощью Control-C, и может замаскировать другие проблемы. Если вы хотите поймать все исключения что сигнализирует об ошибках программы, используйте, кроме Exception: (bare кроме is эквивалентно исключению BaseException:).

Хорошее эмпирическое правило заключается в том, чтобы ограничить использование простых предложений «кроме» двумя случаи:

Если обработчик исключений будет распечатывать или регистрировать проследить; по крайней мере, пользователь будет знать, что произошла ошибка. Если код должен сделать некоторую работу по очистке, но затем позволяет исключение распространяться вверх с повышением. попробуйте ... наконец-то может быть лучший способ справиться с этим делом.

...