python urllib模塊使用操作方法
URL 處理庫(kù)
Python 提供了多個(gè)庫(kù)用于處理 URL,常用的有 urllib、requests 和 urlparse(Python 3 中為 urllib.parse)。以下是這些庫(kù)的主要功能和用法。
urllib 模塊
urllib 是 Python 的標(biāo)準(zhǔn)庫(kù)之一,包含多個(gè)子模塊用于處理 URL 相關(guān)操作:
from urllib.request import urlopen
from urllib.parse import urlparse, urljoin
# 打開 URL 并讀取內(nèi)容
response = urlopen('https://www.example.com')
content = response.read()
# 解析 URL
parsed_url = urlparse('https://www.example.com/path?query=123')
print(parsed_url.scheme) # 'https'
print(parsed_url.netloc) # 'www.example.com'
print(parsed_url.path) # '/path'
print(parsed_url.query) # 'query=123'
# 拼接 URL
base_url = 'https://www.example.com/path'
relative_url = 'subpath'
full_url = urljoin(base_url, relative_url)
print(full_url) # 'https://www.example.com/subpath'requests 庫(kù)
requests 是第三方庫(kù),提供了更簡(jiǎn)潔的 API 用于發(fā)送 HTTP 請(qǐng)求和處理 URL:
import requests
# 發(fā)送 GET 請(qǐng)求
response = requests.get('https://www.example.com')
print(response.status_code) # 200
print(response.text) # HTML 內(nèi)容
# 發(fā)送 POST 請(qǐng)求
data = {'key': 'value'}
response = requests.post('https://www.example.com/post', data=data)
# 處理 URL 參數(shù)
params = {'query': 'python', 'page': 1}
response = requests.get('https://www.example.com/search', params=params)
print(response.url) # 'https://www.example.com/search?query=python&page=1'urlparse 和 urljoin
urlparse 和 urljoin 是 urllib.parse 模塊中的函數(shù),專門用于解析和拼接 URL:
from urllib.parse import urlparse, urljoin # 解析 URL url = 'https://www.example.com:8080/path/to/page?query=python#section' parsed = urlparse(url) print(parsed.scheme) # 'https' print(parsed.netloc) # 'www.example.com:8080' print(parsed.path) # '/path/to/page' print(parsed.query) # 'query=python' print(parsed.fragment) # 'section' # 拼接 URL base = 'https://www.example.com/path/' relative = 'subpath' full_url = urljoin(base, relative) print(full_url) # 'https://www.example.com/path/subpath'
編碼和解碼 URL
URL 中的特殊字符需要進(jìn)行編碼和解碼處理:
from urllib.parse import quote, unquote, urlencode
# 編碼 URL
encoded = quote('python url example')
print(encoded) # 'python%20url%20example'
# 解碼 URL
decoded = unquote('python%20url%20example')
print(decoded) # 'python url example'
# 編碼查詢參數(shù)
params = {'q': 'python url', 'page': 1}
encoded_params = urlencode(params)
print(encoded_params) # 'q=python+url&page=1'總結(jié)
Python 提供了多種工具用于處理 URL,包括標(biāo)準(zhǔn)庫(kù) urllib 和第三方庫(kù) requests。urllib.parse 模塊適合解析和拼接 URL,而 requests 更適合發(fā)送 HTTP 請(qǐng)求和處理響應(yīng)。根據(jù)具體需求選擇合適的工具可以更高效地完成 URL 相關(guān)操作。
到此這篇關(guān)于python urllib模塊使用操作方法的文章就介紹到這了,更多相關(guān)python urllib模塊使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)一個(gè)搖骰子小游戲
大家好,本篇文章主要講的是python實(shí)現(xiàn)一個(gè)搖骰子小游戲,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
Python?isdigit()函數(shù)判斷字符串是否全都是數(shù)字字符示例
這篇文章主要為大家介紹了Python判斷字符串是否全都是數(shù)字字符示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
關(guān)于Series的index的方法和屬性使用說(shuō)明
這篇文章主要介紹了關(guān)于Series的index的方法和屬性使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小
在撰寫論文時(shí)常常會(huì)用到matplotlib來(lái)繪制三維散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python利用treap實(shí)現(xiàn)雙索引的方法
所遍歷的元素一定是遞增(小堆)或是遞減(大堆)關(guān)系,但是我們無(wú)法得知左子樹與右子樹兩部分節(jié)點(diǎn)的排序關(guān)系。本文就來(lái)講講算法和數(shù)據(jù)結(jié)構(gòu)共同滿足一組特性,感興趣的小伙伴請(qǐng)參考下面文章的內(nèi)容2021-09-09
Python利用zhconv模塊進(jìn)行簡(jiǎn)繁體字轉(zhuǎn)換的案例演示
zhconv是一個(gè)Python庫(kù),提供了簡(jiǎn)體字和繁體字之間的轉(zhuǎn)換功能,本教程將向你展示如何使用zhconv模塊來(lái)實(shí)現(xiàn)簡(jiǎn)繁體字的互轉(zhuǎn),并附帶一個(gè)案例演示,感興趣的朋友可以參考一下2024-05-05

