Python urllib 入门使用详细教程

  • Post category:http

以下是关于“Python urllib 入门使用详细教程”的完整攻略:

简介

Python urllib是Python标准库中的一个HTTP客户端库,它提供了一系列的方法来发送HTTP请求和处理HTTP响应。本文将介绍urllib的基本使用方法,包括发送GET和POST请求、设置请求头、处理响应等。

安装

urllib是Python标准库的一部分,因此不需要额外安装。

使用方法

发送GET请求

可以使用urllib.request模块的urlopen方法来发送GET请求。以下是一个示例:

import urllib.request

response = urllib.request.urlopen('http://www.example.com/')
html = response.read()
print(html)

在上述代码中,我们使用urlopen方法来发送GET请求,并使用read方法来读取响应内容。如果请求成功,就会输出响应内容。

发送POST请求

可以使用urllib.request模块的urlopen方法来发送POST请求。以下是一个示例:

import urllib.request
import urllib.parse

url = 'http://www.example.com/login'
data = {'username': 'admin', 'password': '123456'}
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read()
print(html)

在上述代码中,我们使用urlopen方法来发送POST请求,并使用urlencode方法来编码请求参数。如果请求成功,就会输出响应内容。

设置请求头

可以使用urllib.request模块的Request类设置请求头。以下是一个示例:

import urllib.request

url = 'http://www.example.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)
html = response.read()
print(html)

在上述代码中,我们使用Request类来设置请求头,并将其作为参数传递给urlopen方法。如果请求成功,就会输出响应内容。

处理响应

可以使用urllib.response模块来处理HTTP响应。以下是一个示例:

import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen('http://www.example.com/')
except urllib.error.HTTPError as e:
    print('Error code:', e.code)
except urllib.error.URLError as e:
    print('Reason:', e.reason)
else:
    html = response.read()
    print(html)

在上述代码中,我们使用try-except语句来处理HTTP响应。如果请求成功,就会输出响应内容。如果请求失败,就会输出错误信息。

示例

以下是两个使用urllib的示例:

示例1:发送GET请求

假设我们要使用urllib发送GET请求。可以按照以下步骤来完成:

  1. 导入urllib.request模块。

例如,我们可以使用以下代码来导入urllib.request模块:

import urllib.request
  1. 使用urlopen方法发送GET请求。

例如,我们可以使用以下代码来发送GET请求:

response = urllib.request.urlopen('http://www.example.com/')
html = response.read()
print(html)

在上述代码中,我们使用urlopen方法来发送GET请求,并使用read方法来读取响应内容。如果请求成功,就会输出响应内容。

示例2:发送POST请求

假设我们要使用urllib发送POST请求。可以按照以下步骤来完成:

  1. 导入urllib.request模块和urllib.parse块。

例如,我们可以使用以下代码来导入urllib.request模块和urllib.parse模块:

import urllib.request
import urllib.parse
  1. 使用urlencode方法编码请求参数。

例如,我们可以使用以下代码来编码请求参数:

data = {'username': 'admin', 'password': '123456'}
data = urllib.parse.urlencode(data).encode('utf-8')

在上述代码中,我们使用urlencode方法来编码请求参数,并使用encode方法将其转换为字节流。

  1. 使用urlopen方法发送POST请求。

例如,我们可以使用以下代码来发送POST请求:

url = 'http://www.example.com/login'
response = urllib.request.urlopen(url, data)
html = response.read()
print(html)

在上述代码中,我们使用urlopen方法来发送POST请求,并将编码后的请求参数作为参数传递给urlopen方法。如果请求成功,就会输出响应内容。

结论

本文介绍了Python urllib的基本使用方法,包括发送GET和POST请求、设置请求头、处理响应等。同时,提供了两个示例,分别是发送GET请求和发送POST请求。在使用urllib时,我们需要注意请求参数的编码方式以及请求头的设置,以确保请求成功。