# 简易网页请求程序设计与实现


背景介绍

本项目旨在实现一个简易的网页请求程序,接收用户输入的URL,通过HTTP请求获取对应内容,返回HTML页面,并包含基础的错误处理机制。程序支持两种不同的URL输入方式,例如 https://example.com/submit` 和https://api.example.com/endpoint`,并确保本地运行,无需依赖外部服务器。

思路分析

  1. 网络请求实现
    使用 requests 库发送 POST 请求,将 URL 参数封装为请求体,处理HTTP状态码(如 200、500)。
  2. 响应处理
    在响应中提取状态码和内容,并根据错误码(如 500)判断是否需要提示用户。
  3. 本地运行
    通过 print 输出结果,实现本地文件读写功能(如保存HTML内容)。
  4. 数据结构
    使用 strptime 处理时间格式,使用 print 显示结果,使用 print 输出状态码。

代码实现

1. 文件读写示例

import requests

def fetch_and_print(url, output_path="output.html"):
    try:
        response = requests.post(url, data={"url": url}, timeout=10)
        response.raise_for_status()  # 检查状态码

        # 输出结果
        with open(output_path, "w", encoding="utf-8") as f:
            f.write(f"<p>响应内容:{response.text}</p>\n")
            f.write(f"<p>状态码:{response.status_code}</p>\n")

    except requests.exceptions.RequestException as e:
        print(f"请求失败:{e}")
        print("尝试保存内容:" + output_path)
        with open(output_path, "w", encoding="utf-8") as f:
            f.write("<p>请求失败:{e}</p>\n")

# 示例调用
fetch_and_print("https://example.com/submit")
fetch_and_print("https://api.example.com/endpoint")

2. 错误处理机制

import requests

def main():
    try:
        url = input("请输入 URL (例如: https://example.com/submit): ")
        response = requests.post(url, data={"url": url}, timeout=10)
        response.raise_for_status()

        # 处理错误码
        if response.status_code == 500:
            print("<p>请求失败:请检查网络连接或参数错误</p>\n")
        else:
            print("<p>响应内容:{response.text}</p>\n")
            print("<p>状态码:{response.status_code}</p>\n")

    except requests.exceptions.RequestException as e:
        print(f"请求失败:{e}")

if __name__ == "__main__":
    main()

总结

本项目通过网络请求实现,展示了在本地运行、响应处理和错误控制方面的核心知识点。代码逻辑清晰,注释详细,能够帮助开发者理解网络请求机制和HTTP状态码的处理。学习价值体现在网络请求的实现细节、错误处理的逻辑设计以及本地文件操作的实践应用上。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注