[英]Try-Catch with Beatifulsoup
所以本質上,我正在制作的程序將從天才網站中抓取用戶選擇的任何歌曲的歌詞。
現在我遇到的問題是,當我運行我的程序時,有時會出現歌詞,有時它們不會出現,我遇到了屬性無類型錯誤。
現在我已經嘗試了所有我嘗試使用的標題,這使得非類型錯誤更頻繁地發生,甚至 selenium 到 webscrape 但仍然發生非類型錯誤。
無論如何,因為我無法擺脫它,我想到了使用 try catch 錯誤塊,這樣當非類型錯誤確實發生時,它可以重試。
現在我的 try-catch 塊遇到的問題是,當發生非類型錯誤時,它只會進入無限循環,直到 python 給我 stackoverflow 錯誤。
例如,當發生非類型錯誤並且它只是無限循環“正在加載...”時,我輸入了“正在加載...”,那么我該如何解決這個錯誤。 任何建議都會受到重視。
SongURL = f"https://genius.com{picking()}{token}"
Res_1 = requests.get(SongURL)
soup = BeautifulSoup(Res_1.text, "html5lib")
while True:
try:
lyrics = soup.find("div", class_="lyrics").get_text()
print(lyrics)
break
except Exception:
print("Loading...")
continue
問題是您在塊的except
部分中包含了continue
。 捕獲異常是告訴 Python 在出現問題時該怎么做的機制。 當您告訴它在一段時間內continue
while True
時,您是在告訴它繼續循環。
相反,我會插入另一個break
,並刪除continue
。 或者,也許最好重新評估您是否首先需要while
循環。 如果目標只是檢索歌詞一次,則不需要循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.