Рубрики
Без рубрики

Представляем Густаво

Мне нужно было искать файл для URL -адресов и генерировать отчет об их статусе. Итак, я создал Густаво, чтобы сделать … Tagged с OpenSource, Python.

Мне нужно было искать файл для URL -адресов и генерировать отчет об их статусе. Поэтому я создал Густаво, чтобы сделать работу для меня.

Get-url-status (gus) текст как визуал-выпуск (tavo)

Конечно, имя может быть немного банальным, но это делает меня счастливым Так что я придерживаюсь этого. Мне также нравится представлять Гаса как старый сантехник, который проверяет все соединения URL в документе …

Гас можно вызвать из командной строки

python gus.py example.html

или же от раковины Python

>>> import gus
>>> gus.tavo('example.html')

Как работает Гас?

  1. Файл в предоставленном месте открывается, и содержимое сохраняется в виде строки.
  2. Регулярное выражение соответствует каждому экземпляру HTTP или HTTPS, и результаты сохраняются в виде списка.
  3. Для каждого элемента в списке производится подключение к HTTP – запрашивая только заголовок – и возвращается код ответа HTTP.
  4. Возвращенный код соответствует статусу: 2xx помечен как [хорошо]; 4xx помечен [Warn]; И все остальное по умолчанию [UNKN].
  5. Весь список URL -адресов, кодов и их статуса печатается на консоли, а также записывается в файл.

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

Сначала я открыл Textedit и создал output.rtf с четырьмя строками текста. Каждому строке дали свой цвет (по умолчанию, серый, зеленый и красный). Затем у меня был Python открыть файл, прочитать содержимое и распечатать все это на консоли. Затем я скопировал все до первой строки текста и сохранил его до постоянной. То, что осталось, были линии текста и цветовые коды, которые мне были нужны! Я скопировал их в функцию, которая добавила бы соответствующий код к строке URL в зависимости от возвращенного статуса HTTP.

for url in list:
    url = check_nested(url)
    code = check_status_code(url)
    color = r'\cf2' #grey
    status = 'UNKN'
    if code[0] == '2':
      color = r'\cf4' #green
      status = 'GOOD'
    elif code[0] == '4':
      color = r'\cf3' #red
      status = 'WARN'
    checked.append(f"{color} [{code}] [{status}] {url}")

Без сомнения, есть много возможностей для будущих улучшений, но в целом я до сих пор доволен результатами.

Если вам вообще заинтересовано, проверьте репо:

Slaterslater/Gustavo

Распечатайте отчет о всех URL -адресах HTTP в файле

Оригинал: “https://dev.to/slaterslater/introducing-gustavo-1n3b”