我目前正在使用ghost.py并且当我调用它时它们有一个函数show()显示网站但是立即关闭它。如何保持开放?
from ghost import Ghost
import PySide
ghost = Ghost()
with ghost.start() as session:
page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login")
session.set_field_value("input[name=username]", "joe")
session.set_field_value("input[name=password]", "test")
session.show()
session.evaluate("alert('test')")
答案 0 :(得分:0)
会话预览将保持打开状态,直到session
退出 - 通过隐式调用会话上下文session.exit()
。要保持打开状态,您需要不退出会话上下文,或者不使用会话上下文。
前者可以如此实现:
from ghost import Ghost
import PySide
ghost = Ghost()
with ghost.start() as session:
page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login")
session.set_field_value("input[name=username]", "joe")
session.set_field_value("input[name=password]", "test")
session.show()
session.evaluate("alert('test')")
# other python code
后者可以这样实现:
from ghost import Ghost
import PySide
ghost = Ghost()
session = ghost.start()
page, resources = session.open("https://www.instagram.com/accounts/login/?force_classic_login")
session.set_field_value("input[name=username]", "joe")
session.set_field_value("input[name=password]", "test")
session.show()
session.evaluate("alert('test')")
# other python code
然而,当python进程结束时,会话将不可避免地退出。另外值得注意的是,一旦初始http请求完成,一些操作将立即返回。如果您希望等到其他资源已加载,则可能需要致电session.wait_for_page_loaded()
。我还发现,某些表单提交需要调用session.sleep()
才能按预期运行。