2009-10-09 84 views
0

對於完全非惡意的目的 - 特別是機器學習,我想下載一個CAPTCHA圖像的巨大數據集。然而,CAPTCHA總是使用一些混淆的javascript來實現,這使得在沒有瀏覽器的情況下獲得實際的圖像是一件不平凡的任務,至少對我來說,這是一個JavaScript新手。腳本下載CAPTCHA圖像

所以,任何人都可以給我一些有用的指針,如何使用完全在瀏覽器之外的腳本下載隱藏的詞的圖像?並且請不要指向我已經收集到的模糊詞語的數據集 - 我需要從特定網站收集特定實驗的圖像。

謝謝!

編輯:這個問題可以被問到的另一種方式是非常簡單的。當你點擊網站上的「查看源代碼」時,你會看到腳本引用,但這就是你所看到的。但是,如果您點擊「保存網頁爲...」(在Firefox中),然後查看保存的網頁的來源,javascript將被解析並且新的html和圖像(至少在ASIRRA和reCAPTCHA的情況下)在源頭中。如何使用腳本模仿這種「將網頁另存爲...」行爲?這是一個重要的網絡編碼問題,請不要再質疑我的動機了!這是我可以從所有涉及腳本的Web開發中使用的知識,我相信其他堆棧溢出訪問者也可以!

+1

如何問網站的所有者?如果它是非邪惡的...... – Greg 2009-10-09 13:57:41

+0

該網站實際上是微軟的研究項目名爲ASIRRA,它使用的貓狗,而不是模糊的話 - 但它在基本相同的方式來實現。他們有一個公開的數據集,但它太小了。 – JoeCool 2009-10-09 14:00:27

+0

@格雷格:同意,禮貌的事情是你之前批量下載的內容與網站所有者聯繫,吸了大量的帶寬。 – RedFilter 2009-10-09 14:02:49

回答

3

在等待答案的時候,我不停地挖掘並最終想出了一種黑暗的方式來完成我想要的任務。

首先,這是一個有點複雜的問題(至少像我這樣的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次,它的工作完美。實際上,因爲它總是保存到同一個文件夾中,所以重寫的圖像被覆蓋(這正是我想要的)。

0

爲什麼不自己獲取CAPTCHA並生成圖像? reCAPTCHA也是免費的。 http://www.captcha.net/

更新:我看到你從一個特定的網站想要,但如果你自己的,你可以調整它給同種圖像作爲你的目標網站。

+0

我已經擁有自己的服務器和運行recaptcha的網站,但同樣的問題依然存在。如果我瀏覽到我的網站,我可以看到新的模糊詞語,但是如果我使用終端或腳本,我無法找到圖像的位置來自動下載。所以這回到我原來的問題 - 如何在沒有瀏覽器的情況下直接使用腳本獲取圖像? – JoeCool 2009-10-09 14:37:55

0

與運行該網站的人聯繫並詢問數據集。如果你試圖以任何可疑的方式下載許多圖像,那麼你會以相當快的速度結束他們的殺人名單,這意味着你不會再從他們那裏得到任何東西。

CAPTCHA旨在保護人們免受濫用,您所做的從他們的角度看起來就像是虐待。