本文共 4308 字,大约阅读时间需要 14 分钟。
Requests 是 Python 中一个非常强大的 HTTP 库,基于 urllib 但功能更强大,适合处理 HTTP 请求和解析响应。它的安装和使用都非常简单,适合开发者快速进行网络操作。
安装 Requests 只需在终端输入以下命令:
pip install requests
安装完成后,你可以立即开始使用 Requests。
Requests 提供了多种请求方式,包括 GET、POST、DELETE、PUT 等。例如:
import requestsrequests.post("http://httpbin.org/post")requests.put("http://httpbin.org/put")requests.delete("http://httpbin.org/delete")requests.get("http://httpbin.org/get") 每次请求都会返回一个响应对象,该对象提供了多种方法来解析响应数据:
response.json():将响应转换为 JSON 格式。response.text:以字符串形式返回响应内容。response.content:以二进制形式返回响应内容。response.url:返回请求的 URL。response.status_code:返回请求的状态码。response.reason:返回状态码对应的原因。response.headers:返回响应头。response.cookies:返回 cookies 信息。response.raw:返回原始响应体。response.encoding:返回编码格式。import requestsresponse = requests.get('http://www.baidu.com')print(response.text) import requestsr = requests.get('http://www.baidu.com/s', params={'wd': '温一壶清酒'})print(r.url)print(r.text) import requestsheaders = {'Authorization': ''}data = {'username': 'user', 'password': 'password'}r = requests.post(url='https://example.com/login', data=data, headers=headers)print(r.status_code)print(r.text) import requestsfrom requests.auth import HTTPBasicAuthauth = HTTPBasicAuth('username', 'password')r = requests.post(url='https://example.com/login', auth=auth)print(r.status_code)print(r.text) import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}r = requests.get('http://www.example.com', headers=headers)print(r.text) import requestsimport urllib3urllib3.disable_warnings()r = requests.get('https://www.12306.cn', verify=False)print(r.status_code)print(r.text) 以下是一个综合实践示例,展示了动态传参、请求头设置、JSON 入参嵌套等功能:
import requestsimport jsonhost = '' # 替换为实际的主机名或 IP 地址def better_output(json_str): return json.dumps(json.loads(json_str), indent=4, ensure_ascii=False)def login(): headers = {'Authorization': ''} data = {'username': 'user', 'password': 'password'} url = host + '/token' r = requests.post(url=url, data=data, headers=headers, verify=False) global token token = r.json()['access_token'] print("登录接口响应的状态码为:", r.status_code) print("登录接口响应的数据为:", better_output(r.text)) print("获取到的 token 值为:", token)def search_gender_data(): headers = { 'Content-Type': 'application/json;charset=utf-8', 'Authorization': 'Bearer ' + token } url = host + '/api' r1 = requests.get(url=url, headers=headers) global gender gender = r1.json()['values'][0]['code'] print("搜索接口响应的状态码为:", r1.status_code) print("搜索接口响应的数据为:", better_output(r1.text)) print("获取的性别 code 为:", gender)def create_user(): headers = { 'Content-Type': 'application/json;charset=utf-8', 'Authorization': 'Bearer ' + token } data = { "duty": "", "dutyCode": "", "rank": "", "rankCode": "", "deleted": 'false', "userId": "", "employeeId": "", "position": "测试负责人", "companyMainPosition": 'true' } data1 = { "departmentPath": "", "directManager": "", "directManagerId": '', "directManagerName": "", "employeeType": '', "email": "10150001@qq.com", "mobile": "15110151015", "mobileCode": "86", "countryCode": "CN", "employeeTypeCode": "", "userOID": '', "employeeID": "10150001", "fullName": "10150001接口新增", "status": 1001, "manager": 'false', "leavingDate": "3018-01-31T16:00:00.000Z", "gender": "", "genderCode": gender, "birthday": "", "entryTime": "", "customFormValues": [], 'userJobsDTOs': [data] } url = host + '/api' create_u = requests.post(url=url, json=data1, headers=headers) print("创建人员接口 url 为:", url) print("创建人员接口响应的状态码为:", create_u.status_code) print("创建人员接口响应的数据为:", better_output(create_u.text))if __name__ == '__main__': login() search_gender_data() create_user() 通过上述学习和实践,我对 Requests 有了更深入的理解。它极大地简化了 HTTP 请求的处理流程,适合处理各种网络操作。无论是简单的数据获取,还是复杂的 API 接口调用,Requests 都能提供强大而灵活的支持。如果你正在从事 Web 开发或数据爬取项目,Requests 是一个非常不错的选择。希望我的学习过程能为你提供帮助!
转载地址:http://lzluz.baihongyu.com/