在 Web 客户端中搜索可以处理帧的 python

searching web-client for python that can handle frames

我正在寻找一个模拟网络浏览器并可以处理 html 帧的 python 模块。我想将聊天机器人 Brain http://www.thebot.de/ 与 python 一起使用。如果您知道任何解释如何使用与表单和框架相关的建议模块的教程,请给我一个链接。

蒂姆,

我建议你看看Selenium。默认情况下,它会打开并操纵 Firefox 来浏览网络。它的主要用例是测试,但在紧要关头,我已经在我的一些脚本中使用它来获取过去的网站,其中有很多 javascript 或者,在这种情况下,iframes.

基本用法是:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
driver.close()

要访问 iframe,您可以使用以下代码:

elm = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(elm)

然后当你想切换出 iframe 时:

driver.switch_to.default_content()

您甚至可以像这样将 Selenium 与 xvfbwrapper 一起使用(代码来自 github.com/cgolberg/xvfbwrapper):

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

# launch stuff inside virtual display here

vdisplay.stop()