在Python3中,处理爬虫异常的方法有很多种。这里,我将向您展示如何使用try-except
语句来处理异常。以下是一个简单的爬虫示例,我们将使用requests
库来发送HTTP请求,并使用BeautifulSoup
库来解析HTML内容。
首先,确保已经安装了所需的库:
pip install requests
pip install beautifulsoup4
接下来,我们编写一个简单的爬虫:
import requests
from bs4 import BeautifulSoup
def get_html(url):
try:
response = requests.get(url)
response.raise_for_status() # 如果请求失败,将抛出异常
return response.text
except requests.exceptions.RequestException as e:
print(f"请求异常: {e}")
return None
def parse_html(html):
try:
soup = BeautifulSoup(html, "html.parser")
# 在这里解析HTML内容,例如提取所有链接
links = soup.find_all("a")
for link in links:
print(link.get("href"))
except Exception as e:
print(f"解析异常: {e}")
def main():
url = "https://example.com"
html = get_html(url)
if html:
parse_html(html)
if __name__ == "__main__":
main()
在这个示例中,我们使用try-except
语句来捕获和处理异常。在get_html
函数中,我们尝试发送HTTP请求并获取响应。如果请求失败(例如,由于网络问题或无效的URL),我们将捕获requests.exceptions.RequestException
异常并打印错误信息。
同样,在parse_html
函数中,我们尝试使用BeautifulSoup解析HTML内容。如果解析过程中出现任何异常,我们将捕获通用异常并打印错误信息。
这样,我们的爬虫可以在遇到问题时继续运行,而不是完全崩溃。