在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 = https://www.yisu.com/ask/[]"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 = https://www.yisu.com/ask/parse_html(html)"__main__": main()
在这个示例中,我们使用了两个函数get_html
和parse_html
。get_html
函数用于发送HTTP请求并获取HTML内容,parse_html
函数用于解析HTML并提取数据。
在get_html
函数中,我们使用try-except语句捕获可能的异常,例如请求异常(如连接超时、DNS解析失败等)和其他异常。如果发生异常,我们将打印异常信息并返回None。
在parse_html
函数中,我们同样使用try-except语句捕获可能的异常。如果发生异常,我们将打印异常信息并返回一个空列表。
通过这种方式,我们可以确保在爬虫过程中遇到问题时,程序不会崩溃,而是能够继续运行或优雅地退出。