یک وبسایت داریم که در آن نمرات دانشجویان اعلام میشود، میخواهیم با برنامهای نمرات دانشجویان را دریافت و در قالب یک 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"
}
}
بارگذاری
شما تنها کافی است فایلی به نام crawl.php
بسازید که از طریق GET
یک ورودی به نام url
که آدرس سایت نمرات است بگیرد و خروجی json
را چاپ کند، سپس این فایل را داخل یک فایل zip
قرار داده و آپلود کنید.
ارسال پاسخ برای این سؤال