HTML 使用Python的requests获取HTML内容

HTML 使用Python的requests获取HTML内容

在本文中,我们将介绍如何使用Python的requests库来获取HTML内容。Python的requests库是一个功能强大且易于使用的库,它可以用于发送HTTP请求并获取响应数据。

阅读更多:HTML 教程

1. 发送GET请求

要获取HTML内容,我们可以使用requests库的get()方法发送GET请求。该方法接收一个URL作为参数,并返回一个响应对象。下面是一个简单的示例:

import requests

url = "http://example.com"
response = requests.get(url)
html_content = response.text
print(html_content)
Python

在上面的代码中,我们首先导入了requests库,然后定义了一个URL变量来指定要获取HTML的网页。然后,我们使用get()方法发送了一个GET请求,并将返回的响应对象保存在response变量中。最后,我们使用响应对象的text属性来获取HTML内容,并将其打印出来。

2. 处理响应

在上面的示例中,我们通过调用response的text属性来获取HTML内容。除此之外,还有其他一些属性和方法可以用于处理响应。下面是一些常用的方法和属性:

  • response.status_code:获取响应的状态码。
  • response.headers:获取响应头。
  • response.content:获取响应的二进制内容。

下面是一个示例,演示如何获取响应的状态码和头信息:

import requests

url = "http://example.com"
response = requests.get(url)

status_code = response.status_code
headers = response.headers

print("Status Code:", status_code)
print("Headers:", headers)
Python

以上代码将打印出响应的状态码和头信息。

3. 处理响应的异常情况

在实际应用中,我们经常需要处理一些异常情况,例如网络错误或服务器返回错误状态码。requests库提供了一些方法来处理这些异常情况。

  • 可以使用response.raise_for_status()方法来抛出异常,如果请求返回了错误状态码(即大于等于400)。
  • 可以使用response.content属性获取响应的二进制内容,然后对内容进行处理。

下面是一个示例,演示如何处理异常情况:

import requests

url = "http://example.com"
response = requests.get(url)

try:
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print("HTTP Error:", err)
except requests.exceptions.RequestException as err:
    print("Request Exception:", err)

if response.ok:
    content = response.content
    # 处理响应内容
Python

在上面的代码中,我们首先使用try-except语句来捕获可能发生的异常。如果请求返回了错误状态码,response.raise_for_status()方法会抛出一个HTTPError异常。如果发生了其他异常,例如网络错误,response.raise_for_status()方法会抛出一个RequestException异常。

在捕获异常之后,我们可以使用response.ok属性来检查响应是否成功。如果响应成功,我们可以使用response.content属性获取响应的二进制内容,并对内容进行处理。

4. 设置请求头

有些网站可能会根据请求头的不同返回不同的内容。我们可以通过传递一个字典对象给requests.get()方法的headers参数来设置请求头。下面是一个示例:

import requests

url = "http://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",
}
response = requests.get(url, headers=headers)
html_content = response.text
print(html_content)
Python

在上面的代码中,我们通过传递一个包含User-Agent字段的字典对象给headers参数来设置请求头。User-Agent字段用于告诉服务器我们使用的是什么浏览器和操作系统。

总结

本文介绍了如何使用Python的requests库来获取HTML内容。我们通过发送GET请求获取响应对象,并通过响应对象的方法和属性来处理响应和异常情况。我们还演示了如何设置请求头。希望本文可以帮助你使用Python获取HTML内容的需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程