2

出于完全非恶意的目的——特别是机器学习,我想下载一个巨大的验证码图像数据集。然而,CAPTCHA 总是使用一些混淆的 javascript 来实现,这使得在没有浏览器的情况下获取实际图像成为一项不平凡的任务,至少对我这个 javascript 新手来说是这样。

那么,任何人都可以给我一些有用的指导,说明如何使用完全在浏览器之外的脚本来下载模糊单词的图像?并且请不要将我指向已经收集的模糊词的数据集 - 我需要从特定网站收集图像以进行此特定实验。

谢谢!

编辑:可以问这个问题的另一种方式非常简单。当您在具有复杂 javascript 的网站上单击“查看源代码”时,您会看到脚本引用,但这就是您所看到的。但是,如果您单击“将网页另存为...”(在 firefox 中)然后查看已保存网页的源代码,则会解析 javascript 并且新的 html 和图像(至少在 ASIRRA 和 reCAPTCHA 的情况下)是在源头。如何使用脚本模仿这种“将网页另存为...”行为?一般来说,这是一个重要的网络编码问题,所以请不要再质疑我的动机了!这是我从现在开始可以在涉及脚本的所有 Web 开发中使用的知识,我相信其他堆栈溢出访问者也可以!

4

3 回答 3

5

在这里等待答案的同时,我一直在挖掘,最终找到了一种完成我想要的事情的黑客方法。

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

但是,我意识到使用 Firefox 的“将页面另存为...”正是我所需要的。它运行加载图像的 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=*

设置为循环 10,000 次,效果很好。事实上,由于它总是保存到同一个文件夹,重复的图像被覆盖(这是我想要的)。

于 2009-10-12T18:23:28.207 回答
0

为什么不自己获取验证码并生成图像?reCAPTCHA 也是免费的。 http://www.captcha.net/

更新:我看到您希望从特定站点获得它,但是如果您自己获得它,则可以对其进行调整以提供与您所定位的站点相同类型的图像。

于 2009-10-09T14:07:01.727 回答
0

与运行该站点的人员联系并索要数据集。如果您尝试以任何可疑的方式下载许多图像,您将很快进入他们的杀戮名单,这意味着您将不再从他们那里得到任何东西。

验证码旨在保护人们免受滥用,从他们的角度来看,您的所作所为看起来像是滥用。

于 2009-10-09T14:20:29.063 回答