代码之家  ›  专栏  ›  技术社区  ›  JoeCool

自动刷新和下载asirra图像

  •  0
  • JoeCool  · 技术社区  · 15 年前

    如果你不熟悉 Asirra 这是微软开发的一种验证码技术,它使用猫和狗的身份识别,而不是一系列文本进行人类验证。

    我想用他们的数百万张猫狗图片的数据库做一些机器学习实验,所以我正在写一个脚本,可以自动刷新他们的网站并定期下载12张图片。不幸的是,我是一个新手,当谈到javascript。

    问题是,由于非常明显的安全原因,很难找到图像的实际URL,因为它都隐藏在模糊的javascript后面。我尝试使用curl来查看使用终端应用程序返回的HTML,这是一个相同的交易——只是JavaScript。那么,使用脚本,如何访问实际图像?很明显,这些图像会被传送到我的电脑上,因为它们会出现在我的屏幕上,但我不知道如何用脚本来捕捉这些图像。

    还有一个问题是,我不希望第一次加载的小图像,我需要只有当鼠标移到大图像上时才会显示的大图像,所以我想我需要覆盖javascript函数,以便通过脚本将大图像提供给我。

    我更喜欢用蟒蛇或C_,但我什么都要-谢谢!

    编辑:他们的公共语料库没有足够的图片供我使用,所以这行不通。另外,我并不要求你给我写我的脚本,只是一些关于如何使用脚本访问全尺寸图像的指导。

    2 回复  |  直到 15 年前
        1
  •  0
  •   user186800    15 年前
        2
  •  0
  •   JoeCool    15 年前

    在等待答案的同时,我不断挖掘,最终找到了一种被黑客攻击的方式来完成我想要的事情。

    首先,这是一个有点复杂的问题(至少对于像我这样的javascript新手来说)的原因是,来自asirra的图像是通过javascript(客户端技术)加载到网页上的。当您使用wget或curl之类的工具下载网页时,这是一个问题,因为它实际上并不运行javascript,它只是下载源HTML。因此,你得不到图像。

    但是,我意识到使用火狐的“另存页面为…”完全满足了我的需要。它运行加载图像的javascript,然后将其全部保存到硬盘上众所周知的目录结构中。这正是我想要自动化的。所以…我找到了一个名为“iMacros”的Firefox附加组件,并编写了这个宏:

    VERSION BUILD=6240709 RECORDER=FX
    TAB T=1
    URL GOTO=http://www.asirra.com/examples/ExampleService.html
    SAVEAS TYPE=CPL FOLDER=C:\Cat-Dog\Downloads  FILE=*
    

    设置为循环10000次,它工作得很好。事实上,由于它总是保存在同一个文件夹中,重复的图像会被覆盖(这是我想要的)。