簡體   English   中英

Try-Catch 與 Beatifulsoup

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM