У меня есть некоторые данные, которые мне нужно извлечь из коллекции HTML-файлов. Я не уверен, находятся ли данные в элементе div, элементе таблицы или комбинированном элементе (где тег div является элементом таблицы. Я видел все три случая. Мои файлы имеют размер - 2 МБ и У меня их десятки тысяч. До сих пор я смотрел на элементы td в таблицах и смотрел на одинокие элементы div. Мне кажется, что самое длинное время - это файл souped , до 30 секунд. Я поиграл с созданием регулярного выражения, чтобы найти данные, которые я ищу, и затем поиска следующей закрытой таблицы тегов, tr, td или div, чтобы определить, в какой структуре содержится мой текст. найти соответствующий открытый тег, вырезать этот раздел и затем обернуть его в открытые и закрытые HTML-теги
stuff
<div>
stuff
mytext
stuff
</div>
поэтому я создаю строку, которая выглядит следующим образом:
s='<div>stuffmyTextstuff</div>'
Я тогда заверну строку
def stringWrapper(s):
newString='<HTML>'+s+'</HTML>'
return newString
А затем используйте BeautifulSoup
littleSoup=BeautifulSoup(newString)
Затем я могу получить доступ к возможностям BeautifulSoup, чтобы делать то, что я хочу с newString.
Это работает намного быстрее, чем альтернатива, которая сначала проверяет все содержимое ячеек всех таблиц, пока я не найду свой текст и, если не смогу найти его, протестирую все содержимое div.
Я что-то здесь упускаю?