SoupStrainer вообще не увеличивает скорость - PullRequest
0 голосов
/ 29 января 2019

Я использую SoupStrainer для увеличения скорости.Без этого это займет около 12 секунд.И использование SoupStrainer также приводит к 12 секундам.

Я действительно новичок в python и задаюсь вопросом, сделал ли я что-то не так.

from bs4 import BeautifulSoup
from bs4 import SoupStrainer
from contextlib import closing
from requests import get
from requests.exceptions import RequestException
import time

def simple_get(url):
    try:
        with closing(get(url, stream=True, headers = {"Accept-Language": "en-US,en;q=0.5"})) as resp:
            return resp.content
    except RequestException as e:
        return None



if __name__ == "__main__":
    url = "https://www.youtube.com/watch?v=UGRcJQ9tMbY"

    raw_html = simple_get(url)

    bs4_video_list_item_filter = SoupStrainer(class_="video-list-item")
    start = time.time()
    html = BeautifulSoup(raw_html, "lxml", parse_only=bs4_video_list_item_filter) #, 'html.parser')
    print("BeautifulSoup ", time.time()-start)

Я действительно надеюсь, что кто-то может помочь с его ускорениемпотому что мне нужно сделать как 20.000.

1 Ответ

0 голосов
/ 30 января 2019

Согласно официальной документации :

Разбор только части документа не сэкономит много времени при разборе документа, но может сэкономить много памяти,и это сделает поиск документа намного быстрее.

Таким образом, вы фактически не получите никакой скорости при разборе документа с использованием SoupStrainer.

...