python

python数据爬虫如何进行异常处理

小樊
84
2024-11-26 17:08:26
栏目: 编程语言

在Python中进行数据爬虫的异常处理,可以使用try-except语句来捕获和处理异常。以下是一个简单的示例:

import requests
from bs4 import BeautifulSoup

def get_html(url):
    try:
        response = requests.get(url)
        response.raise_for_status()  # 如果请求返回的状态码不是200,将抛出异常
        return response.text
    except requests.RequestException as e:
        print(f"请求异常: {e}")
        return None
    except Exception as e:
        print(f"其他异常: {e}")
        return None

def parse_html(html):
    if html is None:
        return []

    soup = BeautifulSoup(html, "html.parser")
    try:
        # 在这里解析HTML,例如提取数据
        data = []
        for item in soup.find_all("div", class_="item"):
            title = item.find("h2").text
            link = item.find("a")["href"]
            data.append({"title": title, "link": link})
        return data
    except Exception as e:
        print(f"解析异常: {e}")
        return []

def main():
    url = "https://example.com"
    html = get_html(url)
    data = parse_html(html)
    print(data)

if __name__ == "__main__":
    main()

在这个示例中,我们使用了两个函数get_htmlparse_htmlget_html函数用于发送HTTP请求并获取HTML内容,parse_html函数用于解析HTML并提取数据。

get_html函数中,我们使用try-except语句捕获可能的异常,例如请求异常(如连接超时、DNS解析失败等)和其他异常。如果发生异常,我们将打印异常信息并返回None。

parse_html函数中,我们同样使用try-except语句捕获可能的异常。如果发生异常,我们将打印异常信息并返回一个空列表。

通过这种方式,我们可以确保在爬虫过程中遇到问题时,程序不会崩溃,而是能够继续运行或优雅地退出。

0
看了该问题的人还看了