2015-10-23 64 views
0

我是python的新手,請耐心等待。 我想創建在線解決captcha的python代碼。我正在開發Windows而不是Linux,現在雖然我有很多問題。我該如何運行我的python代碼作爲腳本

1st我不明白我的python文件如何在一個實時網站上運行。解決網站顯示的驗證碼。

2nd我已經設法開發並獲得一些代碼,但我認爲它不能正常工作,或者至少也是我想要的。當我用cmd運行它時,什麼都沒有發生。

這裏是我的代碼:

from PIL import Image 
import ImageEnhance 
from pytesser import * 
from urllib import urlretrieve 

def get(link): 
    urlretrieve(link,'temp.png') 

get('http://www.example.com/'); 
im = Image.open("temp.png") 
nx, ny = im.size 
im2 = im.resize((int(nx*5), int(ny*5)), Image.BICUBIC) 
im2.save("temp2.png") 
enh = ImageEnhance.Contrast(im) 
enh.enhance(1.3).show("30% more contrast") 

imgx = Image.open('temp2.png') 
imgx = imgx.convert("RGBA") 
pix = imgx.load() 
for y in xrange(imgx.size[1]): 
    for x in xrange(imgx.size[0]): 
     if pix[x, y] != (0, 0, 0, 255): 
      pix[x, y] = (255, 255, 255, 255) 
imgx.save("bw.gif", "GIF") 
original = Image.open('bw.gif') 
bg = original.resize((116, 56), Image.NEAREST) 
ext = ".tif" 
bg.save("input-NEAREST" + ext) 
image = Image.open('input-NEAREST.tif') 
print image_to_string(image) 

有人可以幫我嘗試修復此代碼,向我解釋如何使用它的前一個網站上

+0

'但我認爲它不能正常工作'你不確定?它有什麼作用?它與你的期望有什麼不同?如果是這樣,怎麼樣? – That1Guy

+0

你太含糊。請通過添加您期望的功能和「在線運行」的方式來編輯您的代碼。我認爲你正在尋找django –

+0

請一次提出一個問題。你的第一和第二個問題是完全分開的,需要單獨討論。 – kdbanman

回答

2

我也沒怎麼明白將我python文件運行在一個實時網站上。

我想我可以幫你理解。您不要在實時網站上運行您的python腳本「」。你想要的是在你的機器上本地運行你的python腳本,但作爲一個更大程序的一部分,它的行爲像一個自動化客戶端,旨在與你正在破解的驗證碼進行交互。

比較這兩個方案:

  • 谷歌瀏覽器人引導web客戶端,並且它可以與任何Web服務器交互。
  • 您的腳本自動化的客戶端,它可以與你它設計到 Web服務器僅交互。

這就是我所說的特定設計:你設計你的客戶端從Web服務器的特定URL獲取驗證碼圖像,並以特定於Web服務器的格式提交數據。像這樣,例如:

  1. httplib加載您想要的網站,執行HTTP GET
  2. 提取驗證碼圖像,並解決它
  3. HTTP客戶端就像httplib執行HTTP POST提交表單與解決驗證碼字符串和所需數據的其餘部分,再次。 (A POST是一樣的東西,「提交」按鈕的功能,當您填寫網站上的表格。)

您當前的腳本執行的#1部分 - 但它只提取圖像,這不是」噸得到頁面的其餘部分。如果你的預處理和image_to_string函數工作,然後#2完成。

+0

所以你說的是我需要做的第一步更好,創造thirf的權利,至於第二部分,我會再次問一個問題,無後顧之憂 – nonerth

+0

是的!我包括更多的解釋 - 沒有什麼重要的。如果你喜歡,請閱讀。 – kdbanman

+1

好的,我接受你的回答,如果我有什麼要問我會回來的,謝謝你! – nonerth