如果我们可以使用Selenium,为什么还需要像BeautifulSoup这样的解析器呢?

问题描述 投票:4回答:1

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

python selenium beautifulsoup web-crawler urllib2
1个回答
6
投票

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

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


换句话说,动态网页的常见工作流程如下:

  • 在由selenium控制的浏览器中打开页面
  • 进行必要的浏览器操作
  • 一旦页面上出现所需数据,请获取driver.page_source并关闭浏览器
  • 将页面源传递给HTML解析器以进行进一步解析
© www.soinside.com 2019 - 2024. All rights reserved.