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