Beautiful Soup是一个Python库,用于从HTML和XML文件中提取数据。我会用它来提取网页数据,但我没有找到任何方法来点击按钮,anchor label
,这是在我的情况下使用的页面导航。所以对于这个,我必须使用任何其他的或者beautiful soup
有我没有意识到的能力。
请给我建议!
回答你的标签/评论,是的,你可以一起使用它们(Selenium和BeautifulSoup),不,你不能直接使用BeautifulSoup来执行事件(点击等)。虽然我自己没有在相同的情况下一起使用过它们,但假设的情况可能涉及使用Selenium通过特定路径导航到目标页面(即click()
这些选项,然后click()
按钮到下一页),然后使用BeautifulSoup读取driver.page_source
(其中driver
是您创建的"驱动"浏览器的Selenium驱动程序)。由于driver.page_source
是页面的HTML,您可以像以前一样使用BeautifulSoup,解析出您需要的任何信息。
简单的例子:
from bs4 import BeautifulSoup
from selenium import webdriver
# Create your driver
driver = webdriver.Firefox()
# Get a page
driver.get('http://news.ycombinator.com')
# Feed the source to BeautifulSoup
soup = BeautifulSoup(driver.page_source)
print soup.title # <title>Hacker News</title>
主要思想是,任何时候你需要读取一个页面的源,你可以传递driver.page_source
到BeautifulSoup
,以便读取任何你想要的