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

 更新时间:2025年12月17日 15:58:53   作者:detayun  
本文介绍了Python中发送HTTP请求的两种方法,即内置的urllib库和第三方requests库,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

本文介绍了Python中发送HTTP请求的两种方法:内置的urllib库和第三方requests库。urllib提供基础功能,而requests库更简单强大,支持GET/POST请求、参数传递、请求头设置等功能。

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

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

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

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

import urllib.request

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

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

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

第一步:安装requests

pip install requests

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

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)

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

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

小贴士和注意事项

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

requests.get(url, timeout=5)

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

try:
    response = requests.get(url)
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")

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

data = response.json()

总结

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

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

到此这篇关于Python使用urllib和requests发送HTTP请求的方法详解的文章就介绍到这了,更多相关Python发送HTTP请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python如何将OpenCV摄像头视频流通过浏览器播放

    Python如何将OpenCV摄像头视频流通过浏览器播放

    这篇文章主要介绍了Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • pandas库中 DataFrame的用法小结

    pandas库中 DataFrame的用法小结

    这篇文章主要介绍了pandas库中 DataFrame的用法,利用pandas.DataFrame可以构建表格,通过列标属性调用列对象,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python之Matplotlib绘图调节清晰度解决方案

    Python之Matplotlib绘图调节清晰度解决方案

    Matplotlib是一个Python的绘图库,可以用来绘制各种类型的图表,包括线图、散点图、柱状图等等,这篇文章主要给大家介绍了关于Python之Matplotlib绘图调节清晰度的相关资料,需要的朋友可以参考下
    2024-03-03
  • Python+Wordpress制作小说站

    Python+Wordpress制作小说站

    本文给大家讲解的是使用python实现采集并入库到WordPress小说站中,非常的简单使用,有需要的小伙伴可以参考下
    2017-04-04
  • python爬虫入门教程之糗百图片爬虫代码分享

    python爬虫入门教程之糗百图片爬虫代码分享

    这篇文章主要介绍了python爬虫入门教程之糗百图片爬虫代码分享,本文以抓取糗事百科内涵图为需求写了一个爬虫,,需要的朋友可以参考下
    2014-09-09
  • Python自动化测试ConfigParser模块读写配置文件

    Python自动化测试ConfigParser模块读写配置文件

    本文主要介绍Python自动化测试,这里详细说明了ConfigParser模块读写配置文件,有兴趣的小伙伴可以参考下
    2016-08-08
  • Python实现求取表格文件某个区域内单元格的最大值

    Python实现求取表格文件某个区域内单元格的最大值

    这篇文章主要介绍基于Python语言,基于Excel表格文件内某一列的数据,计算这一列数据在每一个指定数量的行的范围内(例如每一个4行的范围内)的区间最大值的方法,需要的朋友可以参考下
    2023-08-08
  • Python批量替换多个Word文档的多个关键字的方法

    Python批量替换多个Word文档的多个关键字的方法

    有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Python批量替换多个文档的多个关键字的方法,需要的朋友可以参考下
    2025-08-08
  • python实现的一个p2p文件传输实例

    python实现的一个p2p文件传输实例

    这篇文章主要介绍了python实现的一个p2p文件传输实例,文中用来解决多台服务器维护文件同步问题,需要的朋友可以参考下
    2014-06-06
  • python基于FTP实现文件传输相关功能代码实例

    python基于FTP实现文件传输相关功能代码实例

    这篇文章主要介绍了python基于FTP实现文件传输相关功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论