У меня есть приложение, которое анализирует множество веб-страниц, для разбора я использую красивый суп, и он отлично работает, и я не ищу замену синтаксического анализатора , я могу видеть из своего собственного времени и сравнительного анализа, чтобольшая часть времени тратится на получение реального HTML с веб-запросом, а не на его разбор с красивым супом.Это мой код:
def get_html(url: str):
req = urllib.request.Request(
url,
data=None,
headers={'User-Agent': 'Chrome/35.0.1916.47'})
uClient = urllib.request.urlopen(req, context=ssl.SSLContext(ssl.PROTOCOL_TLSv1))
html = uClient.read()
uClient.close()
return html
Теперь только для тестирования я рассчитал это (с некоторой случайной ссылкой):
for i in range(20):
myhtml = get_html(url)
это заняло у меня в среднем 11,30 секунд , что очень медленно, в моем приложении возможно, что мне понадобятся сотни htmls из URL, так что, очевидно, мне нужно более быстрое решение ... кстати, если я добавлю красивый анализатор супа в цикл, например:
for i in range(20):
myhtml = get_html(url)
page_soup = soup(html, "html.parser")
это просто приводит меня к среднему времени 12,20 секунд , поэтому я могу с уверенностью сказать, что проблема связана с HTML, а не с анализатором.