Предыстория:
Вы наслаждаетесь своей новой работой программиста в мегакультурной корпорации. Однако вы не можете просматривать веб-страницы, поскольку на вашем компьютере есть только CLI. Они также запускают развертки жестких дисков всех сотрудников, поэтому вы не можете просто загрузить большой веб-браузер CLI. Вы решаете сделать простой текстовый браузер настолько маленьким, насколько это возможно, чтобы вы могли запомнить его и каждый день вводить во временный файл.
Вызов:
Ваша задача - создать веб-браузер для гольфа в интерфейсе командной строки. Должно:
- Возьмите один URL через args или stdin
- Разделить
directory
иhost
компоненты URL - Отправьте простой HTTP-запрос
host
на запрос указанногоdirectory
- Печать содержимого любых
<p>
абзацев</p>
тегов - И либо выйти, либо попросить другую страницу
Больше информации:
Простой HTTP-запрос выглядит так:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
Окончание новой строки подчеркнуто.
Типичный ответ выглядит так:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Правила:
- Нужно работать только на 80-м порту (SSL не требуется)
- Вы не можете использовать Netcat
- Какой бы язык программирования ни использовался, разрешены только низкоуровневые TCP API (кроме netcat)
- Вы не можете использовать GUI, помните, это CLI
- Вы не можете использовать HTML-парсеры, кроме встроенных (BeautifulSoup не является встроенным)
- Бонус !! Если ваша программа зацикливается и запрашивает другой URL-адрес вместо выхода, -40 символов (если вы не используете рекурсию)
- Нет сторонних программ. Помните, вы не можете ничего установить.
- код-гольф , поэтому выигрывает самый короткий счетчик байтов
import webbrowser;webbrowser.open(url)