Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में urllib.parse: URL पार्सिंग और निर्माण

urllib.parse मॉड्यूल URL स्ट्रिंग्स को कंपोनेंट्स में तोड़ने और वापस जोड़ने के लिए मानक इंटरफेस प्रदान करता है।

समर्थित URL स्कीम्स

http, https, ftp, file, mailto, ws, wss, sftp, ssh, telnet, आदि (कुल 25+ स्कीम्स)।

urlparse(): URL को 6 कंपोनेंट्स में पार्स करें

from urllib.parse import urlparse

url = 'https://mail.google.com/mail/u/0/?tab=rm#inbox'
result = urlparse(url)

print(result)
# ParseResult(scheme='https', netloc='mail.google.com', path='/mail/u/0/',
#             params='', query='tab=rm', fragment='inbox')

कंपोनेंट्स

एट्रिब्यूटइंडेक्सविवरण
scheme0URL स्कीम (http, https, आदि)
netloc1नेटवर्क लोकेशन (होस्ट:पोर्ट)
path2पाथ
params3पाथ पैरामीटर्स (दुर्लभ)
query4क्वेरी स्ट्रिंग
fragment5फ्रैगमेंट (# के बाद)

अतिरिक्त एट्रिब्यूट्स

result.username  # यूज़रनेम (यदि मौजूद)
result.password  # पासवर्ड
result.hostname  # होस्टनाम (लोअरकेस)
result.port      # पोर्ट नंबर (इंटीजर)

urlunparse(): कंपोनेंट्स से URL बनाएं

from urllib.parse import urlunparse

parts = ('https', 'mail.google.com', '/mail/u/0/', '', 'tab=rm', 'inbox')
print(urlunparse(parts))
# https://mail.google.com/mail/u/0/?tab=rm#inbox

urlsplit() / urlunsplit()

urlparse जैसा लेकिन params को अलग नहीं करता (5-टपल)।

from urllib.parse import urlsplit, urlunsplit

result = urlsplit(url)
# SplitResult(scheme='https', netloc='mail.google.com', path='/mail/u/0/',
#             query='tab=rm', fragment='inbox')

print(urlunsplit(result))

URL क्वोटिंग फ़ंक्शन्स

quote(string, safe='/')

स्पेशल कैरेक्टर्स को %xx में एन्कोड करता है।

from urllib.parse import quote, unquote

url = 'https://mail.google.com/mail/u/0/?tab=rm#inbox'
q = quote(url)
print(q)  # https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox

print(unquote(q))  # मूल URL वापस

quote_plus() / unquote_plus()

स्पेस को + में बदलता है (HTML फॉर्म्स के लिए)।

print(quote_plus('hello world'))  # hello+world
print(unquote_plus('hello+world')) # hello world

urlencode(): डिक्शनरी/सीक्वेंस को क्वेरी स्ट्रिंग में

from urllib.parse import urlencode

params = {"name": "Rajeev", "salary": 20000}
query = urlencode(params)
print(query)  # name=Rajeev&salary=20000

# URL में जोड़ें
base = "https://example.com/api?"
full_url = base + query
print(full_url)  # https://example.com/api?name=Rajeev&salary=20000

parse_qs() / parse_qsl(): क्वेरी स्ट्रिंग पार्स करें

from urllib.parse import parse_qs, parse_qsl

qs = "name=Rajeev&salary=20000&name=Alice"
print(parse_qs(qs))    # {'name': ['Rajeev', 'Alice'], 'salary': ['20000']}
print(parse_qsl(qs))   # [('name', 'Rajeev'), ('salary', '20000'), ('name', 'Alice')]

urljoin(): रिलेटिव URL को एब्सोल्यूट बनाएं

from urllib.parse import urljoin

base = 'https://example.com/dir/page.html'
print(urljoin(base, 'sub/page.html'))      # https://example.com/dir/sub/page.html
print(urljoin(base, '/absolute/path'))     # https://example.com/absolute/path
print(urljoin(base, '../other.html'))      # https://example.com/other.html

सर्वोत्तम अभ्यास

  • URL निर्माण के लिए हमेशा urlencode + urljoin उपयोग करें - मैन्युअल स्ट्रिंग कन्कैटनेशन एरर-प्रोन है।
  • यूज़र इनपुट को URL में डालने से पहले quote करें।
  • ParseResult ऑब्जेक्ट्स नामित टपल्स हैं - इंडेक्स या एट्रिब्यूट नाम से एक्सेस करें।
  1. - पायथन पैंडास - कंपोनेंट्स namedtuple-जैसा लौटाएं

    कंपोनेंट्स namedtuple-जैसा लौटाने के लिए timedelta.components का उपयोग करें। सबसे पहले आवश्यक लाइब्रेरी इम्पोर्ट करें: import pandas as pd पायथन का स्टैंडर्ड datetime लाइब्रेरी टाइमडेल्टा के लिए अलग प्रतिनिधित्व उपयोग करता है। टाइमडेल्टा ऑब्जेक्ट बनाएं: timedelta = pd.Timedelta(1 days 10 min 20 s) क

  1. - पायथन - पैंडास को सेट में टाइपकास्ट करना

    पैंडास को सेट में टाइपकास्ट करने के लिए, set() का उपयोग करें। सबसे पहले, आइए एक डेटाफ्रेम बनाएं - dataFrame = pd.DataFrame( { EmpName: [John, Ted, Jacob, Scarlett, Ami, Ted, Scarlett], Zone: [North, South, South, East, West, East, North] } ) पैंडास को सेट में टाइपकास्ट करें

  1. Python में प्रोग्रामेटिकली वेब ब्राउज़र में URL खोलना (Tkinter) Python में प्रोग्रामेटिकली वेब ब्राउज़र में URL खोलना (Tkinter)

    Python में एक्सटेंशन और मॉड्यूल की एक समृद्ध लाइब्रेरी है जिनका उपयोग कई उद्देश्यों के लिए किया जाता है। वेब-आधारित कंटेंट के साथ काम करने के लिए, Python एक webbrowser मॉड्यूल प्रदान करता है। यह मॉड्यूल एक ऐसा वातावरण बनाता है जो यूजर को एप्लिकेशन में वेब-आधारित कंटेंट प्रदर्शित करने में सक्षम बनाता