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库来发送请求。