SoupStrainer根本不提高速度

时间:2019-01-29 16:13:19

标签: python web-scraping beautifulsoup

我正在使用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 :(得分:0)

根据the official documentation

  

仅解析文档的一部分不会节省您解析文档的大量时间,但是它可以节省大量内存,并且可以使搜索更快。

因此,在使用SoupStrainer解析文档时,您实际上不会获得任何速度。