Нет одного кода лайнера, чтобы получить то, что вы хотите. Вам придется пройтись по строкам, а затем проверить, совпадают ли значения.
Но есть немного лучший подход, который сужает ряды. Вы можете напрямую выбрать строки, которые соответствуют одному из значений. Например, вы можете выбрать все строки, которые имеют date = '2018-04-25'
, а затем проверить соответствие файла.
Код:
for date in soup.find_all('td', text='2018-04-25'):
row = date.find_parent('tr')
if row.td.text == '8-K':
link = row.a['href']
print(link)
Выход:
/Archives/edgar/data/1633917/000163391718000094/0001633917-18-000094-index.htm
Таким образом, здесь вместо циклического перебора всех строк вы просто перебираете строки, содержащие желаемую дату. В этом случае есть только одна такая строка, и, следовательно, мы выполняем цикл только один раз.