使用Ruby中的mechanize

时间:2015-08-27 19:37:24

标签: ruby-on-rails ruby mechanize captcha

我使用mechanize代表我的用户填写预订表单。表单有一个验证码图像。使用mechanize我可以获得图像的链接,但是在我访问该链接时它会有所不同。因此,我放在用户面前的验证码图像(因此他可以填写并提交表格)不是原始表格所要求的,预订也不起作用。

这是我的控制器代码:

booking_page = agent.get('https://my_website.com')
images = booking_page.search("#Captcha img")
@captcha = agent.get(images.first.attributes["src"])

这在我看来:

<%= image_tag @captcha.uri %>

显示验证码,但这不是好的(页面已刷新)。我还尝试在this discussion之后执行此操作:

控制器:

@encoded_image = Base64.encode64 agent.get(images.first.attributes["src"]).body_io.string

查看:

<%= image_tag "data:image/jpeg;base64,#{@encoded_image}" %>

在这里,显示验证码图像但不是好图像。我设法进行预订的唯一方法是将图像保存在我的计算机上。

agent.get(images.first.attributes["src"]).save "captcha.jpg"

我该怎么做才能让我的用户使用它?我应该让他们下载图像(临时文件夹或等效文件)然后在应用程序中显示它吗?有没有办法将正确的图像保存到变量中,以便我可以在视图中使用它?

感谢您的帮助!

0 个答案:

没有答案