python爬虫之请求模块urllib的基本使用

  • Post category:http

以下是关于“python爬虫之请求模块urllib的基本使用”的完整攻略:

简介

在Python爬虫中,请求模块urllib是一个非常常用的模块。本文将介绍urllib的基本使用方法,包括发送GET请求和POST请求,并提供两个示例说明。

GET请求

GET请求是最常见的请求方式之一,可以通过urllib模块的urlopen()函数来发送GET请求。下面是一个简单的示例:

import urllib.request

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

在这个例子中,我们使用urlopen()函数发送了一个GET请求,并将响应结果保存在response变量中。然后,我们使用read()函数读取响应结果,并将结果打印出来。

POST请求

POST请求通用于向服务器提交数据,可以通过urllib模块的urlopen()函数来发送POST请求。下面是一个简单的示例:

import urllib.parse
import urllib.request

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

在这个例子中,我们首先定义了一个url变量,用于指定POST请求的URL地址。然后,我们定义了一个values变量,用于存储POST请求的参数。接着,我们使用urlencode()函数将参数码,并使用encode()函数将编码后的参数转换为字节流。最后,我们使用Request()函数创建一个请求对象,并将URL地址和参数传递给该函数。然后,我们使用urlopen()函数发送POST请求,并将响应结果保存在response变量中。最后我们使用read()函数读取响应结果,并将结果打印出来。

示例说明

示例一:使用urllib发送GET请求

假设我们需要使用urllib发送一个GET请求,获取百度首页的HTML代码。我们可以使用以下代码:

import urllib.request

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

在这个例子中,我们使用urlopen()函数发送了一个GET请求,并将响应结果保存在response变量中。然后,我们使用read()函数读响应结果,并将结果打印出来。

示例二:使用urllib发送POST请求

假设我们需要使用urllib发送一个POST请求,向服务器提交用户名和密码。我们可以使用以下代码:

import urllib.parse
import urllib.request

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

在这个例子中,我们首先定义了一个url变量,用于指定POST请求的URL地址。然后,我们定义了一个变量,用于存储POST请求的参数。接着,我们使用urlencode()函数将参数编码,并使用encode()函数将编码后的参数转换为字节流。最后,我们使用Request()函数创建一个请求对象,并将URL地址和参数传递给该函数。然,我们使用urlopen()函数发送POST请求,并将响应结果保存在response变量中。最后,我们使用read()函数读取响应结果,并将结果打印出来。

结语

本文介绍了urllib模块的基本使用方法,包括发送GET请求和POST请求,并提供了两个示例说明。实际应用中,需要根据具体情况选择合适的请求方式,并按照相应的步骤进行操作。同时,需要注意URL地址和参数的正确性和可靠性,以确保程序的稳定性和可靠性。