欢迎访问宙启技术站
智能推送

Python中的HTTP请求函数,如何使用

发布时间:2023-06-21 06:51:11

Python中常用的HTTP请求函数有两个,分别是requests和urllib,它们都可以用于发送HTTP请求,获取返回数据。

requests是一个精简简单的HTTP库,它是基于urllib3开发的,所以功能上比urllib更加强大。使用requests函数发送HTTP请求关键代码如下:

1. 发送GET请求:

import requests

r = requests.get("http://www.baidu.com")
print(r.status_code)
print(r.text)

上述代码中,通过requests库的get函数,传入请求地址。通过response对象的status_code属性,可获取响应的状态码。响应的页面内容,可以通过response对象的text属性获取。

2. 发送POST请求:

import requests

payload = {"key1": "value1", "key2": "value2"}
r = requests.post("http://httpbin.org/post", data=payload)
print(r.status_code)
print(r.text)

该代码实现了发送POST请求并传递参数,请求地址是http://httpbin.org/post,参数使用字典类型的payload传递。与GET请求类似,POST请求的状态码和响应结果都可以通过response对象获取。

urllib

urllib是Python自带的一个HTTP请求库,通过其中的urlopen函数,可以实现向指定 URL 发送请求,获取响应结果。urlopen函数支持HTTP、HTTPS、FTP、文件等多种类型的URL传输协议。

1. 发送GET请求

from urllib import request

response = request.urlopen('http://www.baidu.com')
print(response.status)
print(response.read())

2. 发送POST请求

from urllib import request, parse

url = 'http://httpbin.org/post'
data = {
    "key1": "value1",
    "key2": "value2"
}
data = parse.urlencode(data).encode('utf-8')
req = request.Request(url, data=data)
response = request.urlopen(req)
print(response.read())

该代码实现了发送POST请求,并传递参数。请求地址是http://httpbin.org/post,参数使用字典类型的data传递,同时需要使用parse模块中的urlencode进行编码,将字典类型的数据转为字符串类型,再通过encode方法将字符串类型的数据转为二进制类型传递给请求体。与GET请求类似,POST请求的状态码和响应结果都可以通过response对象获取。

总结

上述代码演示了requests和urllib两种Python中常用的HTTP请求函数的基本用法,如何发送GET、POST请求,并获取响应结果。两种函数在功能上都比较强大,适用于不同场景。开发者可以根据实际需求,选择使用其中的一个或两个来完成网站爬虫、数据采集、接口测试等相关工作。