2009-10-08 40 views
0

如果您不熟悉Asirra,它是由微軟開發的CAPTCHA技術,該技術使用貓和狗的識別而不是一串文本進行人工驗證。自動刷新和下載Asirra圖像

我想使用他們的數百萬張貓和狗的照片數據庫進行一些機器學習實驗,所以我正在嘗試編寫一個腳本,它將自動刷新其網站並以固定間隔下載12張圖像。不幸的是,當談到JavaScript時,我是一個新手。

問題是,出於非常明顯的安全原因,很難找到圖像的實際url,因爲它全部落後於混淆的javascript。我嘗試使用Curl來查看使用終端應用程序返回的html,並且這是相同的處理 - 只是javascript。所以,使用腳本,我如何訪問實際的圖像?很明顯,圖像正在傳輸到我的電腦,因爲它們顯示在我的屏幕上,但我不知道如何使用腳本捕捉這些圖像。

另外一個問題是,我不想要第一次加載的較小圖像,我需要只在鼠標懸停時才顯示的較大圖像,所以我想我需要覆蓋該javascript函數以使通過腳本給我看更大的圖像。

我更喜歡Python或C#中的東西,但我會帶任何東西 - 謝謝!

編輯:他們的公共語料庫沒有足夠的圖片供我使用,所以這是行不通的。另外,我並不一定要你給我寫我的腳本,只是一些關於如何使用腳本訪問全尺寸圖像的指導。

回答

0

在等待這裏的答案,我不停地挖,最終想出了一個排序的入門做了什麼,我想砍死方式。

首先,這是一個有點複雜的問題(至少像我這樣的JavaScript新手)的原因是,ASIRRA的圖像通過javascript,這是一種客戶端技術加載到網頁上。當您使用類似wget或curl的網頁下載時,這是一個問題,因爲它實際上並沒有運行javascript,它只是下載源html。因此,你不會獲得圖像。

但是,我意識到使用firefox的「Save Page As ...」完全符合我的需求。它運行加載圖像的JavaScript,然後將其全部保存到我的硬盤驅動器上衆所周知的目錄結構中。這正是我想要自動化的。所以...我發現了一個Firefox插件叫做「iMacros的」,並寫了這個宏:

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次,它的工作完美。事實上,因爲它總是保存到同一個文件夾中,所以重寫的圖像被覆蓋(這正是我想要的)。