BeautifulSoup и понимание .text - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь понять библиотеку 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 не приводит к такой же ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...