Python 2.x 中如何使用urllib.urlopen()函数发送GET请求

Python 2.x 中如何使用urllib.urlopen()函数发送GET请求

在Python 2.x中,可以使用urllib库中的urlopen函数发送GET请求。 该函数的语法如下:

urllib.urlopen(url[, data][, timeout])

其中:

url:请求的URL地址

data (可选):需要发送的数据,如果不传递,则默认发送空数据

timeout (可选):请求超时时间,如果不传递,则默认使用系统默认的超时时间

在下面的示例代码中,我们将使用urllib库中的urlopen函数发送一个GET请求,获取百度首页的HTML内容,并打印出前100个字符。

1. 使用urllib.urlopen()函数发送GET请求

import urllib

url = "https://www.baidu.com"

response = urllib.urlopen(url)

html = response.read()

print html[:100]

在上面的代码中,我们通过调用urlopen函数向指定的URL地址发送了一个GET请求,并将返回的响应对象赋值给response变量。使用response.read()方法可以读取响应数据的内容,并将其赋值给html变量。最后,我们打印了前100个字符以检查返回的内容是否正确。

上述代码输出的结果如下:

html = DOCTYPE html>...

由于结果较长,在此省略部分内容。

2. 使用带参数的URL地址发送GET请求

在实际开发中,我们经常需要向带有参数的URL地址发送GET请求以获取相关数据。例如,以下是一个带有参数的URL地址:

http://www.example.com/get_data?name=john&age=30

使用urlopen函数发送GET请求时,可以将参数拼接在URL地址后面,也可以将参数封装在一个字典对象中,然后使用urlencode方法将其转换为URL编码格式。下面是一个示例代码:

import urllib

url = "http://www.example.com/get_data"

params = {"name": "john", "age": 30}

url_params = urllib.urlencode(params)

full_url = url + "?" + url_params

response = urllib.urlopen(full_url)

html = response.read()

print html[:100]

在上面的代码中,我们首先定义了一个URL地址和一个包含参数的字典对象params,在接下来的代码中,我们调用urllib.urlencode方法将params对象转换为URL编码格式,并将其拼接到URL地址后面。最后,我们使用urlopen函数向拼接后的URL地址发送GET请求,并将返回的响应内容赋值给html变量。

上述代码的输出结果与前一个示例代码类似,这里不再赘述。

3. 使用urllib2库发送GET请求

在Python中,除了urllib库之外,还可以使用更加高级的urllib2库来发送GET请求。urllib2库提供了更多的功能和选项,例如HTTP验证、请求重试等等。以下是一个使用urllib2库发送GET请求的示例代码:

import urllib2

url = "https://www.baidu.com"

request = urllib2.Request(url)

response = urllib2.urlopen(request)

html = response.read()

print html[:100]

在上面的代码中,我们首先使用urllib2.Request函数创建了一个请求对象,并将其赋值给request变量。然后,我们使用urllib2.urlopen函数向指定的URL地址发送GET请求,并将返回的响应内容赋值给html变量。

与使用urllib库发送GET请求类似,我们也可以向带有参数的URL地址发送GET请求。以下是一个示例代码:

import urllib

import urllib2

url = "http://www.example.com/get_data"

params = {"name": "john", "age": 30}

url_params = urllib.urlencode(params)

full_url = url + "?" + url_params

request = urllib2.Request(full_url)

response = urllib2.urlopen(request)

html = response.read()

print html[:100]

在上面的代码中,我们通过将字典对象params转换为URL编码格式,并将其拼接到URL地址后面来发送GET请求。然后,我们使用urllib2.Request函数创建一个请求对象,并将其赋值给request变量。最后,我们使用urllib2.urlopen函数向指定的URL地址发送请求,并将返回的响应内容赋值给html变量。

4. 总结

通过本文的介绍,我们了解了如何使用Python 2.x 中的urllib库和urllib2库发送GET请求。您可以根据实际需求选择使用哪种方式来发送请求。如果您需要更多的控制和选项,可以使用urllib2库来发送请求。