Я пытаюсь понять библиотеку BeautifulSoup. Я работал, чтобы вычеркнуть некоторые данные таблицы из HTML-страницы. Я начал со следующего кода:
from bs4 import BeautifulSoup
file = open('masterLU.html').read()
soup = BeautifulSoup(file, 'html.parser')
#retreive all subsubheadings
all = soup.find_all('tbody')
trows = soup.find_all('tr')
for subh in trows:
subh2 = subh.find('strong')
if subh2:
print(subh2.text)
td = subh.find('td', {"data-w": "183.01136400000001px"})
print(td.text.replace("\n", ""))
Проблема с этим кодом в том, что он выдает ошибку
AttributeError: у объекта 'NoneType' нет атрибута 'text'
Однако следующий код работает
from bs4 import BeautifulSoup
file = open('masterLU.html').read()
soup = BeautifulSoup(file, 'html.parser')
#retreive all subsubheadings
all = soup.find_all('tbody')
trows = soup.find_all('tr')
for subh in trows:
subh2 = subh.find('strong')
if subh2:
print(subh2.text)
td = subh.find('td', {"data-w": "183.01136400000001px"})
if td:
print(td.text.replace("\n", ""))
Я просто пытаюсь понять, почему размещение этого в предложении if не приводит к такой же ошибке.