Backstory:
Anda menikmati pekerjaan pemrograman baru Anda di mega-multi-korporasi. Namun, Anda tidak diizinkan menjelajah web karena komputer Anda hanya memiliki CLI. Mereka juga menjalankan sweeping semua hard drive karyawan, sehingga Anda tidak bisa hanya mengunduh peramban web CLI yang besar. Anda memutuskan untuk membuat peramban teks sederhana yang sekecil mungkin agar Anda dapat menghafalnya dan mengetiknya menjadi file sementara setiap hari.
Tantangan:
Tugas Anda adalah membuat browser web golf dalam antarmuka baris perintah. Itu harus:
- Ambil satu URL melalui via args atau stdin
- Membagi
directory
danhost
komponen URL - Kirim permintaan HTTP sederhana ke
host
untuk meminta katadirectory
- Cetak isi setiap tag
<p>
paragraf</p>
- Dan apakah keluar atau meminta halaman lain
Info lebih lanjut:
Permintaan HTTP sederhana terlihat seperti ini:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
Mengakhiri baris baru ditekankan.
Respons khas terlihat seperti:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Aturan:
- Ini hanya perlu bekerja pada port 80 (tidak diperlukan SSL)
- Anda tidak boleh menggunakan netcat
- Apapun bahasa pemrograman yang digunakan, hanya TCP API level rendah yang diizinkan (kecuali netcat)
- Anda tidak boleh menggunakan GUI, ingat, ini adalah CLI
- Anda tidak boleh menggunakan parser HTML, kecuali yang builtin (BeautifulSoup bukan builtin)
- Bonus !! Jika program Anda kembali dan meminta URL lain alih-alih keluar, -40 karakter (selama Anda tidak menggunakan rekursi)
- Tidak ada program pihak ketiga. Ingat, Anda tidak dapat menginstal apa pun.
- kode-golf , sehingga hitungan byte terpendek menang
import webbrowser;webbrowser.open(url)