python urllib模块使用操作方法

 更新时间:2025年08月11日 15:12:45   作者:高级测试工程师欧阳  
Python提供了多个库用于处理 URL,常用的有urllib、requests和 urlparse(Python 3 中为 urllib.parse),下面是这些库的主要功能和用法,感兴趣的朋友跟随小编一起看看吧

URL 处理库

Python 提供了多个库用于处理 URL,常用的有 urllibrequestsurlparse(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

urlparseurljoinurllib.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 和第三方库 requestsurllib.parse 模块适合解析和拼接 URL,而 requests 更适合发送 HTTP 请求和处理响应。根据具体需求选择合适的工具可以更高效地完成 URL 相关操作。

到此这篇关于python urllib模块使用操作方法的文章就介绍到这了,更多相关python urllib模块使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现一个摇骰子小游戏

    python实现一个摇骰子小游戏

    大家好,本篇文章主要讲的是python实现一个摇骰子小游戏,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Python isdigit()函数判断字符串是否全都是数字字符示例

    Python isdigit()函数判断字符串是否全都是数字字符示例

    这篇文章主要为大家介绍了Python判断字符串是否全都是数字字符示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Django前后端分离csrf token获取方式

    Django前后端分离csrf token获取方式

    这篇文章主要介绍了Django前后端分离csrf token获取方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python如何将txt坐标批量打印到原图上

    python如何将txt坐标批量打印到原图上

    这篇文章主要介绍了python如何将txt坐标批量打印到原图上的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 最新python正则表达式(re模块)详解

    最新python正则表达式(re模块)详解

    在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re,这篇文章主要介绍了python正则表达式(re模块)详解,需要的朋友可以参考下
    2023-01-01
  • Django ModelForm组件使用方法详解

    Django ModelForm组件使用方法详解

    这篇文章主要介绍了Django ModelForm组件使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 关于Series的index的方法和属性使用说明

    关于Series的index的方法和属性使用说明

    这篇文章主要介绍了关于Series的index的方法和属性使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    在撰写论文时常常会用到matplotlib来绘制三维散点图,下面这篇文章主要给大家介绍了关于matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Python利用treap实现双索引的方法

    Python利用treap实现双索引的方法

    所遍历的元素一定是递增(小堆)或是递减(大堆)关系,但是我们无法得知左子树与右子树两部分节点的排序关系。本文就来讲讲算法和数据结构共同满足一组特性,感兴趣的小伙伴请参考下面文章的内容
    2021-09-09
  • Python利用zhconv模块进行简繁体字转换的案例演示

    Python利用zhconv模块进行简繁体字转换的案例演示

    zhconv是一个Python库,提供了简体字和繁体字之间的转换功能,本教程将向你展示如何使用zhconv模块来实现简繁体字的互转,并附带一个案例演示,感兴趣的朋友可以参考一下
    2024-05-05

最新评论