【发布时间】:2013-06-30 10:27:59
【问题描述】:
我正在使用 Python 从网站上抓取内容。首先,我在 Python 上使用了BeautifulSoup 和Mechanize,但我看到该网站有一个通过 JavaScript 创建内容的按钮,所以我决定使用Selenium。
鉴于我可以使用 Selenium 和 driver.find_element_by_xpath 之类的方法找到元素并获取它们的内容,那么当我可以将 Selenium 用于所有事情时,还有什么理由使用 BeautifulSoup?
在这种特殊情况下,我需要使用 Selenium 来单击 JavaScript 按钮,那么使用 Selenium 进行解析更好还是应该同时使用 Selenium 和 Beautiful Soup?
【问题讨论】:
-
我以前从未使用 Selenium 来解析 HTML,但 BeautifulSoup 相当健壮。也就是说,既然您已经将 Selenium 用于某事,为什么不将它用于两者,直到您知道为什么需要其他东西?
-
@crowder 是的,目前我正在使用 Selenium 做所有事情,但我之前使用过 BS,所以我想知道哪个是最好的。关于解析,我认为它有点相同,例如,对于 Selenium,我们有 driver.find_elements_by_class_name("...") 和 BS 我们有 soup.findAll('...', {'class' :'....'})。我看到BS有点慢,你怎么看?
-
@elie:这真的是关于你想要达到的目标。 Selenium 被设计为 web ui 自动化工具,如果你只是想解析 html,那就有点大材小用了。如果您需要与页面进行某种交互,请使用 Selenium。
-
@user1177636 谢谢。目前我只是在解析 html 并模拟单击 javascript 按钮以获取所有源代码。也许之后我会在一些页面之间进行一些交互,但目前还不确定。因此,如果我只是在解析,您认为最好使用 BS 并仅将 Selenium 用于 javascript 按钮?
-
标签: javascript python selenium beautifulsoup