如何将我的python代码作为脚本运行

时间:2015-10-23 17:29:11

标签: python image captcha

我是python的新手所以请耐心等待。 我想创建在线解决验证码的python代码。虽然我有很多问题,但我现在正在windows中开发而不是linux。

第一我无法理解我的python文件将如何在实时网站上运行。解决网站显示的验证码。

第二次我已经设法开发并获得了一些代码,但我认为它不能正常工作或至少我想要的方式。当我用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)

有人可以帮我试试修复此代码并向我解释如何在网站上使用它e.x

1 个答案:

答案 0 :(得分:2)

  

我无法理解我的python文件将如何在实时网站上运行。

我想我可以帮助你理解。您没有在实时网站上运行您的python脚本“ ”。你想要的是在你的机器上本地运行你的python脚本,但作为一个更大的程序的一部分,其作为一个自动客户端,旨在与你的破解验证码的服务器进行交互。

比较这两个程序:

  • Google Chrome 是一个人工指导网络客户端,它可以与任何网络服务器进行互动
  • 您的脚本是一个自动客户端,它只能与您设计的网络服务器进行交互

这就是具体设计的意思:您设计客户端以从Web服务器的特定URL获取验证码图像,并以特定于Web服务器的格式提交数据。像这样,例如:

  1. 使用httplib执行HTTP GET
  2. 等方式加载您想要的网站
  3. 提取验证码图像并解决它
  4. 使用已解决的验证码字符串和其他所需数据提交表单,再次使用httplib等http客户端执行HTTP POST。 (POST与您在网站上填写表单时“提交”按钮的功能相同。)
  5. 您当前的脚本属于#1的一部分 - 但它只提取图像,而不会获取页面的其余部分。如果您的预处理和image_to_string功能正常工作,那么#2就完成了。