首先非常抱歉在标题中解释明确的问题。让我们开始吧;
我需要以以编程方式方式下载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()
当我以众所周知的方式手动下载图像时将图像另存为..
没有问题。
有没有机会以我真正需要的方式下载此验证码?
答案 0 :(得分:1)
验证码图像依赖于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()
它为我生成了一个包含正确字符的文件。
答案 1 :(得分:0)
更多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)