此问题适用于 Win10 上的 Python 3.6.3、bs4 和 Selenium 3.8。
我正在尝试抓取具有动态内容的页面。我想要抓取的是数字和文本(例如来自 http://www.oddsportal.com )。据我了解,使用 requests+beautifulsoup 无法完成这项工作,因为动态内容将被隐藏。所以我必须使用其他工具,例如 selenium webdriver。
然后,鉴于我无论如何都会使用 selenium webdriver,您是否建议忽略 beautifulsoup 并坚持使用 selenium webdriver 功能,例如
elem = driver.find_element_by_name("q"))
或者使用selenium+beautifulsoup是否被认为是更好的做法?
您对这两条 route 哪一条能给我更方便的功能有什么意见吗?
最佳答案
美丽汤
Beautifulsoup
是一个强大的网页抓取工具。它使用 urllib.request Python 库。 urllib.request
对于从静态页面提取数据非常强大。
Selenium
Selenium
是目前最广泛接受和最有效的Web 自动化工具。 Selenium 支持与动态页面、内容和元素
交互。
结论
要创建一个强大而高效的框架来抓取具有动态内容的页面,您必须集成 Selenium
和 Beautifulsoup
在你的框架中。通过 Selenium
浏览动态元素并与之交互,并通过 Beautifulsoup
示例
这是一个example
使用 Selenium
和 Beautifulsoup
进行抓取
关于python-3.x - Python - 它被认为更适合抓取 : selenium or beautifulsoup with selenium?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983495/