在我的一个页面中,我要求用户提供另一个网站的凭据,以便我可以在后台使用 phantomjs 登录该网站并获取一些数据(因为该网站仍然没有 API 或 Oauth)。
我大部分时间都可以登录,但有时服务器会变得可疑并且登录表单包含验证码字段。
我可以获取图像并将其返回给用户让他输入验证码,但是从请求返回时,phantomjs session 结束,如果我启动另一个 phantomjs 登录,验证码将不再有效。
处理此问题的最佳方法是什么?我看到一些网站正是这样做的,但不知道如何做。
顺便说一句,我在 Django View 函数中使用 phantomjs。
最佳答案
我猜你需要一个 phantomjs 实例,你在第一个请求时从 django 异步运行。 phantomjs 实例继续运行。
您可以使用 webserver phantomjs 模块在启动后与 python 中的目标 phantomjs 实例进行通信。
在第一个请求中,您暂停并等待 phantomjs 出现在带有验证码的预期页面上。如果有验证码则将其返回给 django 并完成第一个请求。
在 django 服务器中,您将通过端口将当前事件用户映射到 phantomjs 实例。在使用已解决的验证码的下一个请求中,您也可以退出
幻像实例,但前提是它成功。
遗憾的是,我对 django 请求管理的了解不够,无法向您展示一些代码。
关于django - 如何使用 phantomjs 传递带有验证码字段的登录表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218984/