【问题标题】:How can I run my python code as a script如何将我的 python 代码作为脚本运行
【发布时间】:2015-10-24 02:18:07
【问题描述】:

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

1st 我无法理解我的 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)

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

【问题讨论】:

  • but I don't think it works properly 你不确定?它有什么作用?与你的预期不同吗?如果有,怎么做?
  • 你太含糊了。请通过添加您期望的功能以及“在线运行”的含义来编辑您的代码。我认为您正在寻找 django
  • 请一次问一个问题。您的第一个和第二个问题是完全独立的,需要单独讨论。
  • 你说得对,现在让我们关注第二个问题,我会在第一个问题上再次提问
  • 您的第二部分很难理解 - 不清楚您想要的行为是什么,也不清楚错误/问题是什么。因此,我回答了你的第一部分。

标签: python image captcha


【解决方案1】:

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

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

比较这两个程序:

  • Google Chrome 是一个人工引导的网络客户端,它可以与任何网络服务器交互
  • 您的脚本是一个自动客户端,它可以仅与您为其设计的网络服务器交互

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

  1. 使用httplib 之类的内容加载您想要的网站,执行HTTP GET
  2. 提取验证码图像并解决它
  3. 使用已解决的验证码字符串和所需的其余数据提交表单,再次使用httplib 之类的http 客户端执行HTTP POST。 (POST 与您在网站上填写表单时的“提交”按钮作用相同。)

您当前的脚本执行 #1 的一部分 - 但它只提取图像,它没有获取页面的其余部分。如果您的预处理和 image_to_string 函数正常工作,那么 #2 就完成了。

【讨论】:

  • 所以你的意思是我需要把第一步做得更好,创造第三个权利,至于第二部分我会再问一个问题,不用担心
  • 是的!我包括了更多的解释——没什么大不了的。喜欢就读吧。
  • 好的,我接受你的回答,如果我有什么要问的,我会回来谢谢你!
猜你喜欢
  • 1970-01-01
  • 2023-02-08
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
  • 2010-11-30
  • 2011-02-24
相关资源
最近更新 更多