backstory:
Mega-multi-şirkette yeni programlama işinizden hoşlanıyorsunuz. Ancak, bilgisayarınızda yalnızca CLI bulunduğundan web'e göz atmanıza izin verilmez. Ayrıca tüm çalışanların sabit disklerini de tararlar, böylece büyük bir CLI web tarayıcısı indiremezsiniz. Basit bir metinsel tarayıcıyı mümkün olduğunca küçük yapmaya karar verdiniz, böylece onu ezberleyebilir ve her gün geçici bir dosyaya yazabilirsiniz.
Meydan okuma:
Göreviniz bir komut satırı arayüzü içinde golf bir web tarayıcısı oluşturmaktır. Olması gerekiyor:
- Args veya stdin ile tek bir URL al
- URL'nin
directory
vehost
bileşenlerini bölme host
Söz konusu istekte bulunmak için basit bir HTTP isteği gönderdirectory
<p>
Paragraf</p>
etiketlerinin içeriğini yazdır- Ve çıkın veya başka bir sayfa isteyin
Daha fazla bilgi:
Basit bir HTTP isteği şöyle görünür:
GET {{path}} HTTP/1.1
Host: {{host}}
Connection: close
\n\n
Yeni satırları sonlandırmak vurgulandı.
Tipik bir tepki şöyle görünür:
HTTP/1.1 200 OK\n
<some headers separated by newlines>
\n\n
<html>
....rest of page
Kurallar:
- Yalnızca 80 numaralı bağlantı noktasında çalışması gerekiyor (SSL gerekli değil)
- Netcat kullanamazsınız
- Hangi programlama dili kullanılırsa kullanılsın, sadece düşük seviyeli TCP API'lerine izin verilir (netcat hariç)
- Sen olabilir değil bu bir CLI Unutma, GUI kullanmak
- Yerleşik olanlar dışında, HTML ayrıştırıcıları kullanamazsınız (BeautifulSoup bir yerleşik değil)
- Bonus!! Programınız geri döner ve çıkmak yerine başka bir URL isterse, -40 karakter (özyinelemeyi kullanmadığınız sürece)
- Üçüncü taraf programları yok. Unutma, hiçbir şey yükleyemezsin.
- code-golf , yani en kısa bayt sayısı kazanır
import webbrowser;webbrowser.open(url)