Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

urllib.parse — แยก URL เป็นส่วนประกอบใน Python


โมดูลนี้มีอินเทอร์เฟซมาตรฐานเพื่อแยกสตริง Uniform Resource Locator (URL) ในส่วนประกอบหรือเพื่อรวมส่วนประกอบกลับเป็นสตริง URL นอกจากนี้ยังมีฟังก์ชันในการแปลง "URL สัมพัทธ์" เป็น URL แบบสัมบูรณ์ที่กำหนดเป็น "URL พื้นฐาน"

โมดูลนี้สนับสนุนรูปแบบ URL ต่อไปนี้ -

  • ไฟล์
  • ftp
  • โกเฟอร์
  • hdl
  • http
  • https
  • อิมเมจ
  • mailto
  • มม
  • ข่าว
  • nntp
  • รุ่งเรือง
  • rsync
  • rtsp
  • rtspu
  • sftp
  • shttp
  • จิบ
  • จิบ
  • ข่าว
  • svn
  • svn+ssh
  • เทลเน็ต
  • ไหว
  • ws
  • wss

urlparse()

ฟังก์ชันนี้แยกวิเคราะห์ URL ออกเป็นหกองค์ประกอบ โดยส่งคืน 6-tuple ซึ่งสอดคล้องกับโครงสร้างทั่วไปของ URL ทูเพิลแต่ละรายการเป็นสตริง ส่วนประกอบจะไม่ถูกแยกเป็นส่วนเล็กๆ (เช่น ตำแหน่งเครือข่ายเป็นสตริงเดียว) และ % Escapes จะไม่ถูกขยาย ค่าที่ส่งคืนคืออินสแตนซ์ของคลาสย่อยของ tuple ที่ประกอบด้วยแอตทริบิวต์ต่อไปนี้:

แอตทริบิวต์ ดัชนี ค่า ค่าถ้าไม่มี
แบบแผน 0 ตัวระบุรูปแบบ URL พารามิเตอร์ของแผน
netloc 1 ส่วนตำแหน่งเครือข่าย พารามิเตอร์ของแผน
เส้นทาง 2 พาธแบบลำดับชั้น สตริงว่าง
พารามิเตอร์ 3 พารามิเตอร์สำหรับองค์ประกอบพาธสุดท้าย สตริงว่าง
แบบสอบถาม 4 องค์ประกอบแบบสอบถาม สตริงว่าง
แฟรกเมนต์ 5 ตัวระบุแฟรกเมนต์ สตริงว่าง
ชื่อผู้ใช้
ชื่อผู้ใช้ ไม่มี
รหัสผ่าน
รหัสผ่าน ไม่มี
ชื่อโฮสต์
ชื่อโฮสต์ (ตัวพิมพ์เล็ก) ไม่มี
พอร์ต
หมายเลขพอร์ตเป็นจำนวนเต็ม ถ้ามี ไม่มี

ตัวอย่าง

>>> 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(ส่วน)

ฟังก์ชันนี้สร้าง URL จากทูเพิลที่ส่งคืนโดย urlparse() อาร์กิวเมนต์ชิ้นส่วนสามารถทำซ้ำได้ 6 รายการ

>>> 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 ฟังก์ชันนี้ส่งคืนค่า 5-tuple:(รูปแบบที่อยู่, ตำแหน่งเครือข่าย, เส้นทาง, แบบสอบถาม, ตัวระบุส่วนย่อย)

>>> 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():

เช่นเดียวกับเครื่องหมายคำพูด () แต่ยังแทนที่ช่องว่างด้วยเครื่องหมายบวก ตามที่จำเป็นสำหรับการอ้างอิงค่าแบบฟอร์ม HTML เมื่อสร้างสตริงการสืบค้นเพื่อไปยัง URL

unquote()

ฟังก์ชันนี้จะแทนที่ %xx Escapes ด้วยอักขระเดียวที่เทียบเท่า

>>> from urllib.parse import unquote
>>> unquote(q)
'https://mail.google.com/mail/u/0/?tab = rm#inbox'

urlencode()

ฟังก์ชันนี้จะแปลงอ็อบเจ็กต์การแมปหรือลำดับของทูเพิลสององค์ประกอบ เป็นสตริงข้อความ ASCII ที่เข้ารหัสแบบเปอร์เซ็นต์ สตริงผลลัพธ์คือชุดของคู่คีย์ =ค่าที่คั่นด้วยอักขระ '&'

>>> from urllib.parse import urlencode
>>> qry = {"name":"Rajeev", "salary":20000}
>>> urlencode(qry)
'name = Rajeev&salary = 20000'