繁体   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