Быстрый поиск веб-страницы HTML в Python - PullRequest
0 голосов
/ 30 января 2019

У меня есть приложение, которое анализирует множество веб-страниц, для разбора я использую красивый суп, и он отлично работает, и я не ищу замену синтаксического анализатора , я могу видеть из своего собственного времени и сравнительного анализа, чтобольшая часть времени тратится на получение реального 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, а не с анализатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...