我在python中编写了一些Web自动化脚本。我知道我无法自动化验证码,但这就是我想要做的事情:
我希望自动化我可以访问验证码的所有内容。当我打开页面(使用urllib2)并解析它以发现它包含验证码时,我想使用Tkinter打开验证码。现在我知道我必须首先将图像保存到我的硬盘,然后打开它,但之前有一个问题。屏幕上的验证码图像不是直接在源中的任何地方。源代码中有一个变量,在一些javascript中,指向另一个具有图像链接的页面,但如果你加载该中间页面,该链接的验证码图片会发生变化,因此与该javascript变量关联的图像是不再有效。使用这种方法收集图像可能是不可能的,所以如果您对此有任何想法,请赐教。
现在,如果我使用firebug加载页面,有一个“GET”,它是我正在看到的当前Captcha图像的直接链接,我想知道是否有任何方式使python或ullib2看到加载页面时会发生“GET”,因为如果可能的话,这很简单。
如果您有任何建议,请与我们联系。
答案 0 :(得分:2)
当然,验证码由一个页面提供,每次都会提供一个新的(如果它被重复,那么一旦它被解决为一个假的用户ID,垃圾邮件发送者就会自动赚一百万!)。我认为你需要一些“截图”功能来捕获你想要的图像 - 没有跨平台的方式来调用这样的功能,但每个平台(或Linux,BSD等的桌面管理器)往往有一个。或者,您可以在适当的时间将浏览器(例如,通过SeleniumRC
)自动化为“屏幕截图”(例如“打印到PDF”)。 (我相信你在firebug中看到的可能会误导你,因为它 “显示快照”......只是在html源或DOM级别而不是在屏幕/位图级别)。