Проверка работоспособности сайта через Python - PullRequest
49 голосов
/ 23 декабря 2009

Используя python, как я могу проверить, работает ли веб-сайт? Из того, что я прочитал, мне нужно проверить «HTTP HEAD» и увидеть код состояния «200 OK», но как это сделать?

Приветствия

Относящиеся

Ответы [ 11 ]

0 голосов
/ 06 декабря 2016

Вот мое решение с использованием PycURL и валидаторов

import pycurl, validators


def url_exists(url):
    """
    Check if the given URL really exists
    :param url: str
    :return: bool
    """
    if validators.url(url):
        c = pycurl.Curl()
        c.setopt(pycurl.NOBODY, True)
        c.setopt(pycurl.FOLLOWLOCATION, False)
        c.setopt(pycurl.CONNECTTIMEOUT, 10)
        c.setopt(pycurl.TIMEOUT, 10)
        c.setopt(pycurl.COOKIEFILE, '')
        c.setopt(pycurl.URL, url)
        try:
            c.perform()
            response_code = c.getinfo(pycurl.RESPONSE_CODE)
            c.close()
            return True if response_code < 400 else False
        except pycurl.error as err:
            errno, errstr = err
            raise OSError('An error occurred: {}'.format(errstr))
    else:
        raise ValueError('"{}" is not a valid url'.format(url))
...