Python:在异常之后重试就是离开导致异常的行

2024-04-25 19:16:56 发布

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

我对Python还不熟悉。我使用的是BeautifulSoup-python模块。我必须找到并获取任何id的文本,如MathJax-Element-1, MathJax-Element-2, MathJax-Element-3, MathJax-Element-4,….,如果它存在的话。你知道吗

我的密码是

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
attempts = 0
a=-1

while attempts < 100:
    try:
        a+=1
        math="MathJax-Element-"
        math +=`a`
        soup=(soup.find(id=math))
        print(soup.get_text())
        attempts = 0
    except AttributeError:
        attempts +=1

但是在属性错误之后,代码失败了。例如,如果没有id MathJax-Element-2,那么后面就没有任何id的文本,比如MathJax-Element-3和MathJax-Element-4

在异常后重试是离开导致异常的行,即soup=(soup.find(id=math))

我的代码出了什么问题?你知道吗


Tags: 模块代码from文本id密码htmlmath
1条回答
网友
1楼 · 发布于 2024-04-25 19:16:56
    soup=(soup.find(id=math))
    print(soup.get_text())

这些行正在用没有find方法的HTML元素覆盖现有的soupBeautifulSoup对象。这意味着soup.find在第一次迭代之后,每次迭代都会失败。你知道吗

尝试使用其他变量名。你知道吗

    element=(soup.find(id=math))
    print(element.get_text())

相关问题 更多 >