یک برنامه پایتون بنویس که با استفاده از urllib.parse یک URL را تجزیه کند و دیکشنری هدرهای HTTP شامل Host، Path و Query-String را بسازد.

5.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:23

0.0

برای حل مسئله از urllib.parse.urlparse برای جدا کردن اجزای URL (netloc، path، query) و از urllib.parse.parse_qs یا urllib.parse.urlencode برای مرتب‌سازی/رمزگذاری پارامترهای query استفاده کن؛ سپس یک دیکشنری خروجی بساز که 'Host' برابر netloc (شامل پورت در صورت وجود)، 'Path' برابر path (یا "/" اگر خالی است) و 'Query-String' برابر رشتهٔ مرتب‌شده یا رمزگذاری‌شدهٔ پارامترها باشد. نکته‌ها: مطمئن شو اگر query خالی است مقدار مناسبی مثل "" یا None قرار می‌دهی، و برای خوانایی پارامترها از parse_qs برای تبدیل به دیکشنری استفاده و سپس در صورت نیاز با urlencode مجدداً به رشته تبدیل کن.

توسط پژوهشگر در 221 روز قبل ساعت 01:23
دسته بندی ها: Python Python for beginner
arman در 221 روز قبل ساعت 13:26

یک نکته مهم این است که urlparse، قسمت netloc را به طور استاندارد شامل نام میزبان و پورت است، بنابراین برای 'Host' حتماً از netloc استفاده کنید. وقتی از parse_qs استفاده می‌کنید، مقدار هر پارامتر به صورت لیست می‌آید، پس اگر می‌خواهید رشتهٔ query را دوباره بسازید باید با urlencode و doseq=True به شکل مناسب تبدیل کنید یا با کنترل تک‌تایی ها بسازید. همچنین اگر path خالی بود، مقدار '/' را بدهید تا رفتار URL-ها واضح باشد. برای داشتن خروجی قابل‌خواندن، می‌توانید یک دیکشنری خروجی با کلیدهای 'Host', 'Path', 'Query-String' بسازید و در صورت نبود query مقدار "" یا None قرار دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری