خزش‌گر


یک وب‌سایت داریم که در آن نمرات دانشجویان اعلام می‌شود، می‌خواهیم با برنامه‌ای نمرات دانشجویان را دریافت و در قالب یک json خروجی دهیم.

شرح وب‌سایت🔗

این وب‌سایت دارای دو نوع صفحه است.

صفحه‌ی اصلی🔗

که در آن لیست دانشجویان و لینکی به صفحه‌ی نمره‌اشان قرار گرفته است.

صفحه‌ی نمره🔗

که در آن یک جدول قرار دارد که سطر اول آن نام دروس و سطر دوم آن نمره‌ی هر درس است.دقت کنید دروس هر دانشجو ممکن است متفاوت با دیگران باشد.

مثال🔗

یک نمونه از وب‌سایت در این آدرس بارگذاری شده‌است. همان‌طور که می‌بینید در صفحه‌ی اول آن یک لیست وجود دارد که تعدادی لینک با متن User #number و لینکی به شکل score-??.html قرار دارد. عدد نوشته شده بعد از مربع شماره دانشجویی و عبارت داخل لینک بی‌معناست.

بعد از کلیک روی هر یک از لینک‌ها به صفحه‌ی جدیدی می‌رویم که صفحه‌ی نمره‌است.

وظیفه‌ی شما این است که با گرفتن آدرس وب‌سایت از طریق GET و با کلید ‍url، با گرفتن محتوای صفحه‌ی {$_GET['url']}/index.html دانشجویان و لینک صفحه‌شان را پیدا کرده و سپس با فرستادن درخواست به صفحه‌ی دانشجویان و تحلیل آن لیست دروس و نمره‌هایشان را به دست آورید.

خروجی🔗

خروجی برنامه‌ی شما باید یک json از نوع object باشد که کلید‌های آن شماره‌دانشجویی افراد و به ازای هر دانشجو مقدار آن، یک object با کلید نام درس و نمره‌ی آن باشد.

  • دقت کنید این امکان وجود دارد که دانشجو هیچ درسی نداشته‌باشد ویا اینکه کلا هیچ دانشجویی نداشته باشیم. در این صورت بخش مربوطه از json باید یک آبجکت خالی {} باشد.

به طور مثال خروجی‌ای که از وب‌سایت نمونه ساخته می‌شود کد زیر است:

{
    "96100434":{
        "Lesson 1":"10",
        "Lesson 2":"20",
        "Lesson 3":"30"
    },
    "96100554":{
        "Math":"18",
        "Biophysics":"17"
    },
    "96100324":{
        "Math":"10",
        "Physics":"20",
        "Introduction to programming":"12",
        "TTSI":"18"
    }
}
JSON

بارگذاری🔗

شما تنها کافی است فایلی به نام crawl.php بسازید که از طریق GET یک ورودی به نام url که آدرس سایت نمرات است بگیرد و خروجی json را چاپ کند، سپس این فایل را داخل یک فایل zip قرار داده و آپلود کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.