当前位置: 首页 > news >正文

Python发送HTTP请求

想象一下,你想要从网上获取一些信息——比如今天的天气、最新的新闻或者一张图片。这就像给网站写一封信,然后等待回信。Python就是你的贴心邮差,帮你轻松完成这个收发过程。

最简单的方式:使用urllib(Python内置)

Python自带了一个叫urllib的库,就像你手机里自带的短信应用,不需要额外安装。

importurllib.request# 发送一个简单的GET请求response=urllib.request.urlopen('https://www.example.com')print(response.read().decode('utf-8'))# 读取并解码响应内容

推荐方式:使用requests库(更简单强大)

虽然Python自带工具,但requests库就像一款智能邮件应用,让一切变得更加简单直观。

第一步:安装requests

pipinstallrequests

第二步:发送各种类型的请求

importrequests# 1. 简单的GET请求(获取信息)response=requests.get('https://api.github.com')print(f"状态码:{response.status_code}")# 200表示成功print(response.text)# 获取网页内容# 2. 带参数的GET请求(像在搜索框里输入内容)params={'key1':'value1','key2':'value2'}response=requests.get('https://httpbin.org/get',params=params)print(response.url)# 查看实际请求的URL# 3. POST请求(提交信息,像填写表单)data={'username':'user','password':'pass'}response=requests.post('https://httpbin.org/post',data=data)print(response.json())# 以JSON格式查看响应# 4. 自定义请求头(像添加特别说明)headers={'User-Agent':'My-Python-App/1.0'}response=requests.get('https://httpbin.org/user-agent',headers=headers)print(response.text)

实际应用示例:获取天气信息

importrequestsdefget_weather(city):# 使用一个免费的天气API(实际使用需要申请API密钥)api_key="你的API密钥"url=f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"try:response=requests.get(url,timeout=5)# 5秒超时response.raise_for_status()# 如果请求失败会抛出异常weather_data=response.json()print(f"{city}的天气:{weather_data['weather'][0]['description']}")print(f"温度:{weather_data['main']['temp']}K")exceptrequests.exceptions.RequestExceptionase:print(f"获取天气信息失败:{e}")# 使用函数get_weather('Beijing')

小贴士和注意事项

  1. 超时设置:总是设置合理的超时时间,避免程序卡死

    requests.get(url,timeout=5)
  2. 错误处理:使用try-except块捕获可能的异常

    try:response=requests.get(url)response.raise_for_status()exceptrequests.exceptions.RequestExceptionase:print(f"请求出错:{e}")
  3. JSON处理:现代API大多返回JSON格式,requests可以直接解析

    data=response.json()

总结

  • 简单需求:使用Python内置的urllib
  • 大多数情况:使用requests库,它更简单、更强大
  • 记住设置超时和处理异常
  • 现代Web API大多使用JSON格式,requests可以轻松处理

现在你已经掌握了用Python发送HTTP请求的基本方法!就像学会了写电子邮件一样,你可以开始探索互联网上的各种数据和服务了。

Happy coding! 🚀

http://www.cnnetsun.cn/news/119171.html

相关文章:

  • RQ分布式任务监控实战指南:5分钟搭建高效日志追踪系统
  • 突破70%构建瓶颈:Bazel企业级多语言项目效能诊断与优化
  • 百度网盘提取码智能获取完整指南:告别繁琐查询的终极方案
  • 如何快速掌握大语言模型部署:FastChat完整实践指南
  • 【Leetcode】997. Find the Town Judge
  • 百度网盘提取码智能获取终极指南
  • Linux桌面美化终极指南:让你的工作环境焕然一新
  • ThingsGateway:构建智能物联网设备管理平台的完整指南
  • 软考 系统架构设计师系列知识点之面向服务架构设计理论与实践(17)
  • 重新定义Grafana管理:MCP协议集成的智能监控新范式
  • python 第六章 练习
  • MATLAB实现改进的RRT路径规划算法:融合概率采样策略、贪心算法与3次B样条优化的代码与实践
  • 如何在 Laravel 中构建复杂工作流:Venture 终极指南
  • 告别k6 Docker证书困境:从零到一的实战解密
  • 普通主机进入BIOS
  • Notally:终极简单快速的免费笔记应用完全指南
  • OctoSQL查询计划可视化终极指南:3个技巧快速优化SQL性能
  • CCM CRM单相有源功率因数校正boost PFC电路仿真探索
  • 使用EmotiVoice避免版权纠纷的正确姿势
  • 有声内容创作者福音:EmotiVoice一键生成带情绪的朗读音频
  • Java中PageHelper的拦截器实现机制
  • 为什么EmotiVoice成为开发者最青睐的开源TTS引擎?
  • 18、量子测量、信息增益与量子信息理论的哲学思考
  • 26、量子计算、力学与密码学深度解析
  • Nginx gzip压缩完整配置指南:如何快速提升网站性能
  • [深度学习] 大模型学习5-高效微调框架Unsloth使用指北
  • WIndows安装MongoDB数据库
  • NiceGUI之Button操作(ElementPlus组件库)
  • Claude code学习笔记(一)-环境安装claude code+ccr
  • WordPress中文完全教程:从菜鸟到神人的终极指南