backstory:
Ti piace il tuo nuovo lavoro di programmazione in una mega-multinazionale. Tuttavia, non ti è consentito navigare sul Web poiché il tuo computer ha solo una CLI. Eseguono anche sweep dei dischi rigidi di tutti i dipendenti, quindi non è possibile scaricare semplicemente un browser Web CLI di grandi dimensioni. Decidi di creare un semplice browser testuale il più piccolo possibile in modo da poterlo memorizzare e digitarlo in un file temporaneo ogni giorno.
Sfida:
Il tuo compito è quello di creare un browser Web golfed all'interno di un'interfaccia della riga di comando. Dovrebbe:
- Prendi un singolo URL in via args o stdin
- Dividi i componenti
directory
ehost
dell'URL - Invia una semplice richiesta HTTP al
host
per richiedere dettodirectory
- Stampa il contenuto di qualsiasi tag di
<p>
paragrafo</p>
- E o esci o chiedi un'altra pagina
Ulteriori informazioni:
Una semplice richiesta HTTP è simile alla seguente:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
La fine delle nuove linee enfatizzate.
Una risposta tipica è simile a:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Regole:
- Deve solo funzionare sulla porta 80 (non è necessario SSL)
- Non puoi usare netcat
- Qualunque sia il linguaggio di programmazione utilizzato, sono consentite solo API TCP di basso livello (tranne netcat)
- Si può non usare GUI, ricordate, è una CLI
- Non è possibile utilizzare parser HTML, ad eccezione di quelli incorporati (BeautifulSoup non è un incorporato)
- Bonus !! Se il programma torna indietro e richiede un altro URL invece di uscire, -40 caratteri (purché non si usi la ricorsione)
- Nessun programma di terze parti. Ricorda, non puoi installare nulla.
- code-golf , quindi vince il numero di byte più breve
import webbrowser;webbrowser.open(url)