url 处理库
python 提供了多个库用于处理 url,常用的有 urllib
、requests
和 urlparse
(python 3 中为 urllib.parse
)。以下是这些库的主要功能和用法。
urllib 模块
urllib
是 python 的标准库之一,包含多个子模块用于处理 url 相关操作:
from urllib.request import urlopen from urllib.parse import urlparse, urljoin # 打开 url 并读取内容 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 库
requests
是第三方库,提供了更简洁的 api 用于发送 http 请求和处理 url:
import requests # 发送 get 请求 response = requests.get('https://www.example.com') print(response.status_code) # 200 print(response.text) # html 内容 # 发送 post 请求 data = {'key': 'value'} response = requests.post('https://www.example.com/post', data=data) # 处理 url 参数 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
模块中的函数,专门用于解析和拼接 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 中的特殊字符需要进行编码和解码处理:
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' # 编码查询参数 params = {'q': 'python url', 'page': 1} encoded_params = urlencode(params) print(encoded_params) # 'q=python+url&page=1'
总结
python 提供了多种工具用于处理 url,包括标准库 urllib
和第三方库 requests
。urllib.parse
模块适合解析和拼接 url,而 requests
更适合发送 http 请求和处理响应。根据具体需求选择合适的工具可以更高效地完成 url 相关操作。
到此这篇关于python urllib模块使用操作方法的文章就介绍到这了,更多相关python urllib模块使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论