尝试与Beatifulsoup合作

2024-05-23 16:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,本质上,我正在制作的程序将从genius网站上获取用户选择的任何歌曲的歌词

现在我遇到的问题是,当我运行我的程序时,歌词有时会出现,有时不会出现,我会遇到属性none类型错误

现在,我已经尝试了所有我尝试使用的标题,这使得无类型错误发生得更频繁,甚至硒到webscrape,但无类型仍然发生

无论如何,由于我无法摆脱它,我考虑使用try-catch错误块,这样当非类型错误发生时,它就可以再试一次

现在,我的try-catch块遇到的问题是,当发生none-type错误时,它只会进行无限循环,直到python给出stackoverflow错误

例如,当出现none类型错误时,我把“loading…”放进去,它只是在“loading…”循环中,所以我如何修复这个错误。任何建议都会被采纳

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

Tags: text程序none类型get错误歌词res
1条回答
网友
1楼 · 发布于 2024-05-23 16:13:22

问题是在块的except部分中包含了一个continue。 捕获异常是一种机制,用于在出现问题时告诉Python该做什么。当您告诉它在while Truecontinue时,您告诉它继续循环

我将插入另一个break,并删除continue。或者,最好首先重新评估是否需要while循环。如果目标只是检索一次歌词,那么循环就不必要了

相关问题 更多 >