网站首页 > 基础教程 正文
urllib是python内置的http客户端库,用于网络请求相关的主要是urllib.request子模块。
GET请求
from urllib import request
# 发送GET请求并获取响应
response = request.urlopen('http://httpbin.org/get')
# 读取响应内容
html = response.read().decode('utf-8')
print(html)
#输出
{
"args": {},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.8",
"X-Amzn-Trace-Id": "Root=1-6820512b-44adb7d37a1f15233ad07016"
},
"origin": "6x.xxx.xx.xx",
"url": "http://httpbin.org/get"
}
执行完上面的代码后,就可以获取响应内容。这个操作跟在浏览器地址栏中输入http://httpbin.org/get后所获得的内容是一样的。
带参数的GET请求
from urllib.request import urlopen
from urllib.parse import urlencode
# 构造请求参数
params = {
'key1': 'value1',
'key2': 'value2'
}
query_string = urlencode(params)
url = f'http://httpbin.org/get?{query_string}'
# 发送请求
response = urlopen(url)
print(response.read().decode('utf-8'))
#输出
{
"args": {
"key1": "value1",
"key2": "value2"
},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.8",
"X-Amzn-Trace-Id": "Root=1-682055ee-328a6e591c9952ba3ff32a6a"
},
"origin": "6x.xxx.xx.xx",
"url": "http://httpbin.org/get?key1=value1&key2=value2"
}
这个例子展示了带参数的http get请求。其中用到的urllib.parse是urllib用于解析URL的子模块,对url参数进行encode,再对输出内容进行decode。
post请求
from urllib.request import urlopen, Request
from urllib.parse import urlencode
# 准备POST数据
data = urlencode({
'username': 'admin',
'password': 'secret'
}).encode('utf-8')
# 创建请求对象
req = Request('http://httpbin.org/post', data=data)
# 发送POST请求
response = urlopen(req)
print(response.read().decode('utf-8'))
#输出
{
"args": {},
"data": "",
"files": {},
"form": {
"password": "secret",
"username": "admin"
},
"headers": {
"Accept-Encoding": "identity",
"Content-Length": "30",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.8",
"X-Amzn-Trace-Id": "Root=1-682058db-6068492d07a634eb50a5bfde"
},
"json": null,
"origin": "6x.xxx.xx.xx",
"url": "http://httpbin.org/post"
}
这个例子展示了http post请求,通过模拟http post请求的链接http://httpbin.org/post,得到的返回结果中可以看到post时传入的数据。
总结
今天展示了用urllib库进行http get和post请求的例子
- 上一篇: Urllib四个模块的介绍
- 下一篇: 如何快速使用urllib爬取网页?
猜你喜欢
- 2025-05-26 【python爬虫】第十四讲:爬取tx视频(urllib和pymongo模块学习)
- 2025-05-26 Python urllib3 包:处理 URL 的高级 HTTP 客户端库
- 2025-05-26 高大上的解答:在 'packages.pyi' 中找不到引用 'urllib3'
- 2025-05-26 Python HTTP 库 urllib3 支持直接在浏览器运行
- 2025-05-26 爬虫必备(3)- urllib基础超级详解
- 2025-05-26 一步步走上爬虫巅峰——基础(urllib和request.Request)
- 2025-05-26 如何快速使用urllib爬取网页?
- 2025-05-26 Urllib四个模块的介绍
- 2024-07-23 爬虫必备(6)- urllib君子协议解析器
- 2024-07-23 Python3 urllib.request库的基本使用
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)