Я здесь немного новичок, поэтому, пожалуйста, прости мое невежество. Я пытаюсь получить строку кода, которая будет возвращена только для определенных элементов тега. Проблема в том, что мои подходы дают эти соответствующие результаты ...:
for items in soup.find('td', text='Trading Symbol').parent.find_all('td'):
ticker = [items.text.strip()]
print(ticker)
['Trading Symbol']
['AAPL']
['']
и
for items in soup.find('td', text='Trading Symbol').parent.find_all('td'):
for td in items.find('td', {'class':['text']}):
ticker = [td.text.strip()]
print(ticker)
....error message....for td in items.find('td', {'class':['text']}):
TypeError: 'NoneType' object is not iterable
Я понимаю, почему первый код делает то, что делает - я не указал точно, что я ищу (тикер AAPL), но я не знаю, почему добавление еще одной строки кода с указанием класса не делает ' сузить список. Глядя на суп (который я привел ниже), я понял, что дополнительная строка кода уберет «Торговый символ» и оставит «AAPL» и «[]», но ничего не даст. Любая помощь здесь?
Вот суп. Существуют сотни тегов класса re, поэтому фильтрация с использованием может оказаться полезной, но это не конец.
## <tr class="re">
## <td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
## <td class="text">AAPL<span></span>
## </td>