【发布时间】:2020-01-16 05:29:13
【问题描述】:
根据性能,使用 BautifulSoup 进行网络抓取比使用 Selenium 的网络驱动程序快得多。但是我不知道从动态网页获取内容的任何其他方式。我认为差异来自浏览器加载元素所需的时间,但肯定不止于此。一旦浏览器加载页面(5 秒),我所要做的就是从表中提取一些 <tr> 标记。提取 1016 条记录大约需要 3-4 分钟,我认为这非常慢。我得出的结论是,用于查找 find_elements_by_name 等元素的 webdriver 方法很慢。来自 webdriver 的 find_elements_by.. 是否比 BeautifulSoup 中的 find 方法慢得多?如果我从 webdriver 浏览器获取整个 html 然后用 lxml 解析并使用 BeautifulSoup 会更快吗?
【问题讨论】:
-
是的,您可以使用
driver.page_source获取整个html -
是的,但是否确认 BeautifulSoup 的查找速度比 Selenium 中的查找速度快?
-
是的,没错。 BeautifulSoup 比 Selenium 快得多
-
我尝试用 BeautifulSoup 解析 driver.page_source,与之前的 3-4 分钟相比,它不到 10 秒要快得多。
标签: python performance selenium web-scraping beautifulsoup