在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內容。如果解析過程中出現任何異常,我們將捕獲通用異常并打印錯誤信息。
這樣,我們的爬蟲可以在遇到問題時繼續運行,而不是完全崩潰。