python网页请求urllib2模块简单封装代码


在Python中,`urllib2` 模块在Python 3中已经被废弃,取而代之的是`urllib`和`urllib.request`。但为了符合你的要求,并且考虑到可能有用户还在使用Python 2,我将提供一个基于`urllib2`的简单封装示例,用于发送HTTP GET请求。请注意,如果你在使用Python 3,你应该考虑使用`urllib.request`。


import urllib2

def simple_http_get(url):
    """
    使用urllib2模块发送简单的HTTP GET请求

    参数:
    url (str): 要请求的URL地址

    返回:
    str: 响应的内容

    抛出:
    urllib2.URLError: 如果发生网络错误
    """
    try:
        # 发起请求
        request = urllib2.Request(url)
        response = urllib2.urlopen(request)
        # 读取响应内容
        return response.read().decode('utf-8')  # 假设响应是UTF-8编码
    except urllib2.URLError as e:
        # 处理请求错误
        print("请求错误:", e.reason)
        raise  # 可以选择重新抛出异常或进行其他处理

# 使用示例
if __name__ == "__main__":
    url = "http://example.com"
    try:
        response = simple_http_get(url)
        print(response)
    except Exception as e:
        print("请求过程中发生错误:", e)

请注意,由于`urllib2`在Python 3中已被移除,如果你在使用Python 3,你应该使用`urllib.request`模块。以下是使用`urllib.request`的类似示例:


from urllib.request import urlopen
from urllib.error import URLError

def simple_http_get(url):
    """
    使用urllib.request模块发送简单的HTTP GET请求

    参数:
    url (str): 要请求的URL地址

    返回:
    str: 响应的内容

    抛出:
    URLError: 如果发生网络错误
    """
    try:
        # 发起请求
        with urlopen(url) as response:
            # 读取响应内容
            return response.read().decode('utf-8')  # 假设响应是UTF-8编码
    except URLError as e:
        # 处理请求错误
        print("请求错误:", e.reason)
        raise  # 可以选择重新抛出异常或进行其他处理

# 使用示例(Python 3)
if __name__ == "__main__":
    url = "http://example.com"
    try:
        response = simple_http_get(url)
        print(response)
    except Exception as e:
        print("请求过程中发生错误:", e)

希望这能满足你的需求!