如何用 Python 破解 "select different image" 验证码
How to break "select different image" CAPTCHA with Python
所以我在 Python3 中有这段代码,它通过对象识别(我用它来自动执行基于 Flash 播放器的网站内的下载过程)和 Selenium 从网站抓取数据。问题是我被这个网站困住了,这个网站有一个定制的验证码,用户必须 select 来自组的不同图像,我不知道如何从该网站下载或获取这些图像为了识别不同的人,有没有人解决过这样的问题?或者对如何使用任何其他技术或方法解决此验证码有想法?
This is the login that has the CAPTCHA
这里是西班牙语站点的 link。验证码基本上说 "Select the different image"
https://portalempresas.sb.cl/login.php
谢谢!
要将这些图像下载为 png 文件,您可以执行以下操作:
from io import BytesIO
from PIL import Image
# Download image function
def downloadImage(element,imgName):
img = element.screenshot_as_png
stream = BytesIO(img)
image = Image.open(stream).convert("RGB")
image.save(imgName)
# Find all the web elements of the captcha images
image_elements = driver.find_elements_by_xpath("*//div[contains(@class,'captcha-image')]")
# Output name for the images
image_base_name = "Imagen_[idx].png"
# Download each image
for i in range(len(image_elements)):
downloadImage(image_elements[i],image_base_name.replace("[idx]","%s"%i))
编辑 1:
如果你想比较 2 张图片看它们是否相等,你可以试试这个 post
编辑 2:
使用上面编辑的解决方案,结果如下:
所以我在 Python3 中有这段代码,它通过对象识别(我用它来自动执行基于 Flash 播放器的网站内的下载过程)和 Selenium 从网站抓取数据。问题是我被这个网站困住了,这个网站有一个定制的验证码,用户必须 select 来自组的不同图像,我不知道如何从该网站下载或获取这些图像为了识别不同的人,有没有人解决过这样的问题?或者对如何使用任何其他技术或方法解决此验证码有想法?
This is the login that has the CAPTCHA
这里是西班牙语站点的 link。验证码基本上说 "Select the different image" https://portalempresas.sb.cl/login.php
谢谢!
要将这些图像下载为 png 文件,您可以执行以下操作:
from io import BytesIO
from PIL import Image
# Download image function
def downloadImage(element,imgName):
img = element.screenshot_as_png
stream = BytesIO(img)
image = Image.open(stream).convert("RGB")
image.save(imgName)
# Find all the web elements of the captcha images
image_elements = driver.find_elements_by_xpath("*//div[contains(@class,'captcha-image')]")
# Output name for the images
image_base_name = "Imagen_[idx].png"
# Download each image
for i in range(len(image_elements)):
downloadImage(image_elements[i],image_base_name.replace("[idx]","%s"%i))
编辑 1:
如果你想比较 2 张图片看它们是否相等,你可以试试这个 post
编辑 2:
使用上面编辑的解决方案,结果如下: