2010-09-02 53 views
0

我在python的腳本編寫一些網頁自動化。我知道我不能自動驗證碼,但這裏是我想要做的:有沒有辦法保存驗證碼圖片並在以後用python查看?

我想自動化所有我可以達到驗證碼。當我打開頁面(使用urllib2)並解析它以發現它包含驗證碼時,我想使用Tkinter打開驗證碼。現在我知道我必須先將圖像保存到我的硬盤,然後打開它,但在此之前有一個問題。屏幕上的驗證碼圖像不是直接位於任何位置的源。源代碼中有一個變量,指向另一個包含圖像鏈接的頁面,但如果您加載中間頁面,該鏈接的驗證碼圖片會發生變化,所以與該javascript變量關聯的圖像是不再有效。使用這種方法收集圖像可能是不可能的,所以如果您對此有任何想法,請指教我。

現在,如果我使用螢火蟲加載頁面,有一個「GET」,它是直接鏈接到我目前看到的當前驗證碼圖片,並且我想知道是否有無論如何使python或ullib2看到加載頁面時發生的「GET」,因爲如果可能的話,這將很簡單。

如果您有任何建議,請讓我知道。

+0

「我知道我無法自動驗證碼」[說誰](http://en.wikipedia.org/wiki/CAPTCHA#Circumvention)? – NullUserException 2010-09-02 00:52:21

+0

詳細說明?也許有人可以。我不認爲我可以。 – Alex 2010-09-02 01:15:14

回答

2

當然captcha由一個頁面服務,每次都會提供一個新的頁面(如果重複,那麼一旦它被解決了一個假的用戶標識符,垃圾郵件發送者可以自動賺取一百萬!)。我認爲你需要一些「屏幕截圖」功能來捕捉你想要的圖像 - 沒有跨平臺的方式來調用這樣的功能,但是每個平臺(或Linux,BSD等桌面管理器)往往都有一個。或者,您可以使瀏覽器自動化(例如,通過SeleniumRC)以在正確的時間「截屏」(例如「打印爲PDF」)。 (我相信你在螢火蟲中看到的內容可能會誤導你,因爲它「顯示快照」...只是在html源代碼或DOM級別而不是屏幕/位圖級別)。

+0

因此,我意識到它可能會這樣做:當python加載url時,它只加載源代碼,並且不執行加載challenge頁面的javascript命令。所以我相信我可以加載挑戰頁面,並將它視爲第一次加載,因此它指向的圖像將是有效的。這一切似乎工作,除了在POST請求中有一些與「psig」有關,我的帖子丟失,我不知道它來自哪裏。 – Alex 2010-09-02 18:47:06

相關問題