এই মডিউল একটি স্ট্যান্ডার্ড ইন্টারফেস প্রদান করে Uniform Resource Locator (URL) স্ট্রিং কম্পোনেন্টে ভাঙতে বা কম্পোনেন্টগুলোকে আবার একটি URL স্ট্রিং-এ জোড়াতে। এতে রিলেটিভ URL কে এবসোলিউট URL-এ কনভার্ট করার ফাংশনও রয়েছে একটি বেস URL দিয়ে।
এই মডিউল নিচের URL স্কিমগুলো সাপোর্ট করে:
- file
- ftp
- gopher
- hdl
- http
- https
- imap
- mailto
- mms
- news
- nntp
- prospero
- rsync
- rtsp
- rtspu
- sftp
- shttp
- sip
- sips
- snews
- svn
- svn+ssh
- telnet
- wais
- ws
- wss
urlparse()
এই ফাংশন একটি URL কে ছয়টি কম্পোনেন্টে পার্স করে, একটি 6-টাপল রিটার্ন করে। এটি একটি URL-এর সাধারণ কাঠামোর সাথে মিলে। প্রতিটি টাপল আইটেম একটি স্ট্রিং। কম্পোনেন্টগুলো ছোট ছোট অংশে ভাঙা হয় না (উদাহরণস্বরূপ, নেটওয়ার্ক লোকেশন একটি সিঙ্গেল স্ট্রিং), এবং % এস্কেপ এক্সপ্যান্ড করা হয় না। রিটার্ন ভ্যালু tuple-এর একটি সাবক্লাসের ইনস্ট্যান্স যা নিচের অ্যাট্রিবিউটগুলো로 তৈরি:
| অ্যাট্রিবিউট | ইন্ডেক্স | ভ্যালু | যদি উপস্থিত না থাকে |
|---|---|---|---|
| scheme | 0 | URL স্কিম স্পেসিফায়ার | scheme parameter |
| netloc | 1 | নেটওয়ার্ক লোকেশন অংশ | scheme parameter |
| path | 2 | হায়ারার্কিক্যাল পাথ | খালি স্ট্রিং |
| params | 3 | লাস্ট পাথ এলিমেন্টের প্যারামিটার | খালি স্ট্রিং |
| query | 4 | কোয়েরি কম্পোনেন্ট | খালি স্ট্রিং |
| fragment | 5 | ফ্র্যাগমেন্ট আইডেন্টিফায়ার | খালি স্ট্রিং |
| username | ইউজার নাম | None | |
| password | পাসওয়ার্ড | None | |
| hostname | হোস্ট নাম (লোয়ার কেস) | None | |
| port | পোর্ট নম্বর ইন্টিজার হিসেবে, যদি উপস্থিত থাকে | None |
উদাহরণ
>>> from urllib.parse import urlparse >>> url = 'https://mail.google.com/mail/u/0/?tab = rm#inbox' >>> t = urlparse(url) ParseResult(scheme='https', netloc='mail.google.com', path='/mail/u/0/', params='', query='tab = rm', fragment='inbox')
urlunparse(parts)
এই ফাংশন urlparse() দ্বারা রিটার্ন করা টাপল থেকে একটি URL কনস্ট্রাক্ট করে। parts আর্গুমেন্ট যেকোনো ছয়-আইটেম ইটেরেবল হতে পারে।
>>> from urllib.parse import urlunparse >>> urlunparse(t) 'https://mail.google.com/mail/u/0/?tab = rm#inbox' urlsplit(urlstring, scheme='', allow_fragments=True):
এটি urlparse()-এর অনুরূপ, কিন্তু URL থেকে params স্প্লিট করে না। এই ফাংশন একটি 5-টাপল রিটার্ন করে: (addressing scheme, network location, path, query, fragment identifier)।
>>> from urllib.parse import urlsplit >>> urlsplit(url) SplitResult(scheme='https', netloc='mail.google.com', path='/mail/u/0/', query='tab = rm', fragment='inbox')
urlunsplit(parts)
এই ফাংশন urlsplit() দ্বারা রিটার্ন করা টাপলের এলিমেন্টগুলো কম্বাইন করে একটি কমপ্লিট URL স্ট্রিং-এ।
URL কোটিং ফাংশনগুলো প্রোগ্রাম ডেটা নেয় এবং সেটিকে URL কম্পোনেন্ট হিসেবে ব্যবহার করার জন্য সেফ করে 스페শাল ক্যারেক্টার কোট করে এবং নন-ASCII টেক্সট অ্যাপ্রোপ্রিয়েটলি এনকোড করে।
quote()
এই ফাংশন স্ট্রিং-এ 스페শাল ক্যারেক্টারকে %xx এস্কেপ দিয়ে রিপ্লেস করে। লেটার, ডিজিট, এবং '_.-~' ক্যারেক্টারগুলো কখনো কোট করা হয় না।
>>> from urllib.parse import quote >>> q = quote(url) 'https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox' quote_plus():
quote()-এর মত, কিন্তু স্পেসকে প্লাস সাইন দিয়ে রিপ্লেস করে, HTML ফর্ম ভ্যালু কোট করার জন্য আবশ্যক কোয়েরি স্ট্রিং তৈরি করার সময় URL-এ যেতে।
unquote()
এই ফাংশন %xx এস্কেপকে তাদের সিঙ্গেল-ক্যারেক্টার সমতুল্যে রিপ্লেস করে।
>>> from urllib.parse import unquote >>> unquote(q) 'https://mail.google.com/mail/u/0/?tab = rm#inbox'
urlencode()
এই ফাংশন একটি ম্যাপিং অবজেক্ট বা টু-এলিমেন্ট টাপলের একটি সিকোয়েন্সকে, একটি পারসেন্ট-এনকোডেড ASCII টেক্সট স্ট্রিং-এ কনভার্ট করে। ফলাফল স্ট্রিংটি একটি সিরিজ key=value পেয়ার যা '&' ক্যারেক্টার দিয়ে সেপারেটেড।
>>> from urllib.parse import urlencode
>>> qry = {"name":"Rajeev", "salary":20000}
>>> urlencode(qry)
'name=Rajeev&salary=20000'