Trasfondo:
Disfrutas tu nuevo trabajo de programación en una mega-multi-corporación. Sin embargo, no puede navegar por la web ya que su computadora solo tiene una CLI. También ejecutan barridos de los discos duros de todos los empleados, por lo que no puede simplemente descargar un navegador web CLI grande. Decide crear un navegador de texto simple que sea lo más pequeño posible para que pueda memorizarlo y escribirlo en un archivo temporal todos los días.
Desafío:
Su tarea es crear un navegador web con golf dentro de una interfaz de línea de comandos. Debería:
- Tome una sola URL a través de args o stdin
- Dividir los componentes
directory
yhost
de la URL - Enviar una solicitud HTTP simple a la
host
solicitud de dichodirectory
- Imprima el contenido de cualquier etiqueta de
<p>
párrafo</p>
- Y salga o solicite otra página
Más información:
Una simple solicitud HTTP se ve así:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
Poner fin a las nuevas líneas enfatizadas.
Una respuesta típica se ve así:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Reglas:
- Solo necesita trabajar en el puerto 80 (no se necesita SSL)
- No puedes usar netcat
- Independientemente del lenguaje de programación utilizado, solo se permiten API TCP de bajo nivel (excepto netcat)
- Es posible que no usar interfaz gráfica de usuario, recuerda, es una CLI
- No puede usar analizadores HTML, excepto los incorporados (BeautifulSoup no es incorporado)
- ¡¡Prima!! Si su programa retrocede y solicita otra URL en lugar de salir, -40 caracteres (siempre que no use la recursividad)
- No hay programas de terceros. Recuerda, no puedes instalar nada.
- code-golf , por lo que gana el conteo de bytes más corto
import webbrowser;webbrowser.open(url)