Hintergrundgeschichte:
Sie genießen Ihren neuen Programmierjob bei einem Mega-Multi-Unternehmen. Sie dürfen jedoch nicht im Internet surfen, da Ihr Computer nur über eine CLI verfügt. Sie durchsuchen auch die Festplatten aller Mitarbeiter, sodass Sie nicht einfach einen großen CLI-Webbrowser herunterladen können. Sie entscheiden sich für einen einfachen Textbrowser, der so klein wie möglich ist, damit Sie ihn sich merken und jeden Tag in eine temporäre Datei eingeben können.
Herausforderung:
Ihre Aufgabe ist es, einen Golf-Webbrowser innerhalb einer Befehlszeilenschnittstelle zu erstellen. Es sollte:
- Nehmen Sie eine einzelne URL über args oder stdin ein
- Teilen Sie die
directory
undhost
Komponenten der URL - Senden Sie eine einfache HTTP-Anfrage an die,
host
um diese anzuforderndirectory
- Drucken Sie die Inhalte der
<p>
Absatz -</p>
Tags - Und entweder beenden oder nach einer anderen Seite fragen
Mehr Info:
Eine einfache HTTP-Anfrage sieht folgendermaßen aus:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
Letzte Zeilenumbrüche werden hervorgehoben.
Eine typische Antwort sieht wie folgt aus:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Regeln:
- Es muss nur auf Port 80 funktionieren (kein SSL erforderlich)
- Sie dürfen netcat nicht verwenden
- Unabhängig von der verwendeten Programmiersprache sind nur TCP-APIs auf niedriger Ebene zulässig (außer Netcat).
- Sie können die GUI möglicherweise nicht verwenden, denken Sie daran, es ist eine CLI
- Sie dürfen keine HTML-Parser verwenden, außer eingebauten (BeautifulSoup ist kein eingebauter Parser).
- Bonus!! Wenn Ihr Programm eine Schleife durchläuft und nach einer anderen URL fragt, anstatt zu beenden, -40 Zeichen (solange Sie keine Rekursion verwenden)
- Keine Programme von Drittanbietern. Denken Sie daran, Sie können nichts installieren.
- Code-Golf , so dass die kürzeste Anzahl von Bytes gewinnt
import webbrowser;webbrowser.open(url)