Я анализирую текст с помощью Beautifulsoup и хочу вернуть теги ниже / ниже родительского тега. Однако между тремя различными документами существуют несоответствия между тем, как «требуемый набор данных» пишется с большой буквы. Смотрите ниже:
<td class="pl "...-unimportant bits of script here-...;>Desired Data Set...</td>
и
<td class="pl "...-unimportant bits of script here-...;>Desired data set...</td>
и
<td class="pl "...-unimportant bits of script here-...;>desired data set...</td>
Это мой код:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(data.text, 'lxml')
filenames = ['Desired Data Set','desired data set','Desired data set']
for filename in filenames:
for item in soup.select('filename:contains("' + filename + '")'):
for td in item.find('td', text=filename).parent.find_all('td'):
data = [td.text.strip()]
print(data)
... и это работает.
Однако, когда я начну работать с большими наборами данных, я уверен, что будет еще больше несоответствий, и даже несмотря на то, что вышеупомянутый подход работает, он «хакерский» и не эффективен или разумен. Я хотел бы просто использовать одно имя файла для всех желаемых наборов данных.
Я пытался опустить весь суп, используя lower (), но он выдает ошибку NoneType.