バックストーリー:
メガマルチコーポレーションで新しいプログラミングの仕事を楽しんでいます。ただし、コンピューターにはCLIしかないため、Webを閲覧することはできません。また、全従業員のハードドライブのスイープも実行するため、大きなCLI Webブラウザーを単純にダウンロードすることはできません。できる限り小さく、毎日一時ファイルに入力できるように、できるだけ小さいシンプルなテキストブラウザーを作成することにしました。
チャレンジ:
あなたの仕事は、コマンドラインインターフェイス内でゴルフWebブラウザーを作成することです。そうすべき:
- argsまたはstdin経由で単一のURLを取得します
- URLのコンポーネント
directory
とhost
コンポーネントを分割します - 単純な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文字(再帰を使用しない限り)
- サードパーティのプログラムはありません。何もインストールできないことを忘れないでください。
- code-golfなので、最短バイト数が勝ちます
import webbrowser;webbrowser.open(url)