我是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))
我的代码出了什么问题?
答案 0 :(得分:2)
soup=(soup.find(id=math))
print(soup.get_text())
这些行使用HTML元素覆盖现有的soup
BeautifulSoup对象,该元素没有find
方法。这意味着soup.find
将在第一次迭代后的每次迭代中始终失败。
尝试使用其他变量名称。
element=(soup.find(id=math))
print(element.get_text())