【问题标题】:Why do we still need parser like BeautifulSoup if we can use Selenium?如果我们可以使用 Selenium,为什么还需要像 BeautifulSoup 这样的解析器?
【发布时间】:2017-08-27 03:01:44
【问题描述】:

我目前正在使用 Selenium 从一些网站抓取数据。与 urllib 不同,我似乎并不需要像 BeautifulSoup 这样的解析器来解析 HTML。我可以简单地使用 Selenium 找到一个元素并使用 Webelement.text 来获取我需要的数据。正如我所看到的,有些人在网络爬虫中同时使用 Selenium 和 BeautifulSoup。真的有必要吗? bs4 可以提供哪些特殊功能来改进爬取过程?谢谢。

【问题讨论】:

标签: python selenium beautifulsoup web-crawler urllib2


【解决方案1】:

Selenium 本身在定位元素方面非常强大,它基本上拥有从 HTML 中提取数据所需的一切。问题是,速度很慢。每个单独的 selenium 命令都通过JSON wire HTTP protocol 并且存在大量开销。

为了提高HTML解析部分的性能,通常让BeautifulSouplxml解析从.page_source检索到的页面源会快很多。


换句话说,动态网页的常见工作流程是这样的:

  • 在 selenium 控制的浏览器中打开页面
  • 进行必要的浏览器操作
  • 页面上出现所需数据后,获取driver.page_source 并关闭浏览器
  • 将页面源传递给 HTML 解析器以供进一步解析

【讨论】:

  • 非常高质量的帖子,感谢alecxe的贡献。 Selenium 也可以与 Headless 浏览器一起使用(我相信你知道)加快进程并降低内存使用量(通常),不知道命令如何到达浏览器>JSON,谢谢。
猜你喜欢
  • 2021-01-14
  • 2012-10-11
  • 2021-01-01
  • 2011-05-18
  • 2010-12-26
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多