Python - 被认为是更好的报废:硒或美丽的硒汤?

时间:2017-12-26 20:40:40

标签: python-3.x selenium selenium-webdriver beautifulsoup webdriver

这个问题适用于Win10上的Python 3.6.3,bs4和Selenium 3.8。

我正在尝试使用动态内容来抓取页面。我想要抓取的是数字和文字(例如来自http://www.oddsportal.com)。从我理解使用请求+ beautifulsoup将无法完成工作,因为动态内容将被隐藏。所以我必须使用其他工具,例如我们的selenium webdriver。

然后,鉴于我将使用selenium webdriver,你是否建议忽略beautifulsoup并坚持使用selenium webdriver函数,例如

elem = driver.find_element_by_name("q"))

或者使用selenium + beautifulsoup被认为是更好的做法吗?

您对两条路线中的哪条路线能给我更方便的功能有什么看法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

Beautifulsoup

Beautifulsoup网页摘要的强大工具。它使用 urllib.request Python库。 urllib.request 非常强大,可以从静态网页中提取数据。

Selenium是目前用于 Web Automation 的最广泛接受且最有效的工具。 Selenium支持与Dynamic Pages, Contents and Elements进行交互。

结论

要创建一个强大而高效的框架来抓取包含动态内容的网页,您必须在框架中集成 Selenium Beautifulsoup 。通过 Selenium 浏览动态元素并与之互动,并通过 Beautifulsoup

高效抓取内容

示例

Selenium 使用 Beautifulsoup Scrapping example

答案 1 :(得分:1)

Selenium有很多selectors

find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector

# and 

find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector

所以大多数情况下你不需要BeautifulSoup

特别是xpathcss_selector可能很有用。

相关问题