返回顶部
分享到

Python使用urllib和requests发送HTTP请求的方法

python 来源:互联网 作者:佚名 发布时间:2025-12-17 21:06:19 人浏览
摘要

本文通过天气API示例演示了实际应用,并提供了超时设置、错误处理和JSON解析等实用技巧。推荐大多数场景使用requests库,同时强调了异常处理的重要性。这些方法为获取网络数据和与Web服务

本文通过天气API示例演示了实际应用,并提供了超时设置、错误处理和JSON解析等实用技巧。推荐大多数场景使用requests库,同时强调了异常处理的重要性。这些方法为获取网络数据和与Web服务交互提供了基础工具。

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

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

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

1

2

3

4

5

import urllib.request

 

# 发送一个简单的GET请求

response = urllib.request.urlopen('https://www.example.com')

print(response.read().decode('utf-8'))  # 读取并解码响应内容

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

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

第一步:安装requests

1

pip install requests

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

import requests

 

# 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)

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import requests

 

def get_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")

         

    except requests.exceptions.RequestException as e:

        print(f"获取天气信息失败: {e}")

 

# 使用函数

get_weather('Beijing')

小贴士和注意事项

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

1

requests.get(url, timeout=5)

错误处理:使用try-except块捕获可能的异常

1

2

3

4

5

try:

    response = requests.get(url)

    response.raise_for_status()

except requests.exceptions.RequestException as e:

    print(f"请求出错: {e}")

JSON处理:现代API大多返回JSON格式,requests可以直接解析

1

data = response.json()

总结

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

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Python使用urllib和requests发送HTTP请求的方法
    本文通过天气API示例演示了实际应用,并提供了超时设置、错误处理和JSON解析等实用技巧。推荐大多数场景使用requests库,同时强调了异常
  • 在Mac上安装最新版本Python的方法

    在Mac上安装最新版本Python的方法
    所有最新的 MacOS(从 macOS 12.3 开始)都预装了 Python 版本(通常是 Python 2.x),但它已经过时并且不再受支持。要充分利用 Python 的功能,您
  • python serial模块使用方法
    在Python中实现串口通信,最常用且功能强大的库是pySerial(通常通过import serial导入) 。它支持跨平台操作(Windows、Linux、macOS),提供了完
  • pytorch中torch.cat和torch.stack的区别

    pytorch中torch.cat和torch.stack的区别
    torch.cat和torch.stack是 PyTorch 中用于组合张量的两个常用函数,它们的核心区别在于输入张量的维度和输出张量的维度变化。以下是详细对比:
  • Python实现快速扫描目标主机的开放端口和服务
    功能介绍 这是一个功能强大的端口扫描器脚本,能够快速扫描目标主机的开放端口和服务。该脚本具备以下核心功能: 多种扫描模式:支持
  • Python轻松实现Word到Markdown的转换
    在文档管理、内容发布等场景中,将 Word(.doc/.docx)转换为 Markdown 格式是常见需求。Markdown 的轻量、跨平台、易编辑特性,使其更适配网页
  • python可变/不可变对象及+=和=+举例
    在Python开发中,可变对象与不可变对象是一个高频基础概念,也是初学者容易混淆的难点。这两类对象的核心差异不仅影响变量赋值、函数
  • Python使用Spire.XLS for Python实现高效读取Excel数据
    在当今数据驱动的世界中,Python 已成为数据处理和分析的首选工具。而 Excel 文件作为最常见的数据存储格式之一,如何高效、准确地在 P
  • 安装scrapy框架并测试全过程

    安装scrapy框架并测试全过程
    安装scrapy框架并测试 这是个系列文章,主要是能让大家快速的的做出一个小项目,主要是我现在在做计算机设计大赛,想把做过的东西记录
  • Python实现PDF文档高效转换为HTML文件
    一、为什么需要PDF转HTML 在数字化办公场景中,PDF因其格式固定、跨平台兼容性强成为文档分发的主流格式。但PDF的静态特性限制了内容复用
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计