গল্পের:
আপনি মেগা-মাল্টি-কর্পোরেশনে আপনার নতুন প্রোগ্রামিং কাজটি উপভোগ করছেন। তবে আপনার কম্পিউটারটিতে কেবল একটি সিএলআই রয়েছে সেহেতু আপনাকে ওয়েব ব্রাউজ করার অনুমতি নেই। এগুলি সমস্ত কর্মীদের হার্ড ড্রাইভগুলিও চালায় তাই আপনি সহজেই একটি বৃহত সিএলআই ওয়েব ব্রাউজার ডাউনলোড করতে পারবেন না। আপনি যতটা সম্ভব ছোট একটি সাধারণ পাঠ্য ব্রাউজার তৈরি করার সিদ্ধান্ত নিয়েছেন যাতে আপনি এটি মুখস্ত করতে এবং প্রতিদিন এটি একটি অস্থায়ী ফাইলে টাইপ করতে পারেন।
চ্যালেঞ্জ:
আপনার কাজ হ'ল কমান্ড-লাইন ইন্টারফেসের মধ্যে একটি গল্ফড ওয়েব ব্রাউজার তৈরি করা। এটি করা উচিত:
- আরগস বা স্টিডিনের মাধ্যমে একটি একক ইউআরএল নিন
- ইউআরএলের উপাদান
directory
এবংhost
উপাদানগুলি বিভক্ত করুন - এটি একটি সহজ HTTP- র অনুরোধ পাঠান
host
বলেন অনুরোধ করতেdirectory
- যে কোনও
<p>
অনুচ্ছেদে</p>
ট্যাগগুলির সামগ্রী মুদ্রণ করুন - এবং হয় প্রস্থান করুন বা অন্য পৃষ্ঠা জিজ্ঞাসা করুন
অধিক তথ্য:
একটি সাধারণ এইচটিটিপি অনুরোধটি দেখে মনে হচ্ছে:
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 পোর্টে কাজ করা দরকার (কোনও এসএসএল প্রয়োজন নেই)
- আপনি নেটকেট ব্যবহার করতে পারেন না
- প্রোগ্রামিংয়ের যে কোনও ভাষা ব্যবহার করা হোক না কেন, কেবলমাত্র নিম্ন-স্তরের টিসিপি API গুলি অনুমোদিত (নেটক্যাট ব্যতীত)
- আপনি জিইআইআই ব্যবহার করতে পারবেন না , মনে রাখবেন, এটি সিএলআই রয়েছে
- বিল্ট ইনগুলি ব্যতীত আপনি HTML পার্সার ব্যবহার করতে পারবেন না (বিউটিফুলসপ কোনও বিল্টিন নয়)
- বোনাস!! যদি আপনার প্রোগ্রামটি পিছনে ফিরে আসে এবং বাইরে বের হওয়ার পরিবর্তে অন্য কোনও URL জিজ্ঞাসা করে, -40 অক্ষর (যতক্ষণ না আপনি পুনরাবৃত্তি ব্যবহার করবেন না)
- কোনও তৃতীয় পক্ষের প্রোগ্রাম নেই। মনে রাখবেন, আপনি কিছু ইনস্টল করতে পারবেন না।
- কোড-গল্ফ , তাই সংক্ষিপ্ততম বাইট গণনা জিতেছে
import webbrowser;webbrowser.open(url)