У меня большой HTML-документ.Я анализирую его с помощью BeautifulSoup, но единственная информация, которую я хочу извлечь, - это текст определенного тега (который, я считаю, встречается только один раз).
Документ отформатирован так:
<html>
<div class=...>
<div class=...
<div class="foo">
...
...
В настоящее время я использую SoupStrainer для фильтрации только тегов div с классом "foo".Возможно, мне следует использовать другую библиотеку, или, возможно, я неправильно понимаю, что делает SoupStrainer.
html = open("file.html", encoding="UTF8").read()
parse_only = SoupStrainer("div", class_="foo")
soup = BeautifulSoup(raw_html, "lxml", parse_only=parse_only)
text = soup.text
Я надеялся, что это будет значительно быстрее, чем без SoupStrainer, но я получил ускорение всего в 2 раза, и мне бы хотелось, чтобы оно было быстрее.Я думаю, что причина этого состоит в том, что он все еще должен проверить, соответствует ли каждый отдельный тег в документе, напрягая его.Я хотел бы, чтобы он просто остановился на первом теге, который соответствует этому, и больше не занимался бы разбором документа.