django - 如何使用 phantomjs 传递带有验证码字段的登录表单?

标签 django authentication phantomjs captcha

在我的一个页面中,我要求用户提供另一个网站的凭据,以便我可以在后台使用 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/

相关文章:

angularjs - 在所有 Angular Controller 中存储用户信息

node.js - phantomjs-pdf 不工作

python - django-cms 页面的绝对 url

Python 3 - Win 8 上的 Django 1.7 - MySQL 连接问题

symfony - 如何让onAuthenticationSuccess函数被调用

javascript - 使用 Node.js Highcharts 导出图表

php - 如何从 php 执行 casperjs?

python - ValueError at/image/Tensor Tensor ("activation_5/Softmax:0", shape=(?, 4), dtype=float32) 不是这个图的元素

python - Django manage.py 自定义命令可以返回值吗?如何,或者为什么不?

git - 开启gitlab二次验证后如何使用git命令