这个验证码逻辑有什么问题?
What's wrong with the logic of this captcha?
首先非常抱歉在标题中没有清楚地解释问题。那么让我们开始吧;
我需要 this 以编程方式 方式下载验证码图像。
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
img = urllib.request.urlopen(captcha_url)
localFile = open('captcha.jpg', 'wb')
localFile.write(img.read())
localFile.close()
当我用众所周知的方式手动下载图像时将图像另存为..
没有问题。
是否有机会以我实际需要的方式下载此验证码?
验证码图像依赖于 cookie 来填充图像上显示的值。
您应该使用与加载主页相同的 Grab
对象来下载验证码图像。
试试这个:
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
resp = g.go(captcha_url)
localFile = open('captcha.jpg', 'wb')
localFile.write(resp.body)
localFile.close()
它为我生成了一个包含正确字符的文件。
更多 pythonic 文件写入:
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
resp = g.go(captcha_url)
with open('captcha.jpg', 'wb') as localFile
localFile.write(resp.body)
首先非常抱歉在标题中没有清楚地解释问题。那么让我们开始吧;
我需要 this 以编程方式 方式下载验证码图像。
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
img = urllib.request.urlopen(captcha_url)
localFile = open('captcha.jpg', 'wb')
localFile.write(img.read())
localFile.close()
当我用众所周知的方式手动下载图像时将图像另存为..
没有问题。
是否有机会以我实际需要的方式下载此验证码?
验证码图像依赖于 cookie 来填充图像上显示的值。
您应该使用与加载主页相同的 Grab
对象来下载验证码图像。
试试这个:
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
resp = g.go(captcha_url)
localFile = open('captcha.jpg', 'wb')
localFile.write(resp.body)
localFile.close()
它为我生成了一个包含正确字符的文件。
更多 pythonic 文件写入:
import grab, requests, urllib
root_url = 'https://e-okul.meb.gov.tr/'
g = grab.Grab()
g.go(root_url)
e = g.doc.select('//*[@id="image1"]')
captcha_url = root_url + e.attr('src')
resp = g.go(captcha_url)
with open('captcha.jpg', 'wb') as localFile
localFile.write(resp.body)