由于需要检查100多个注册号,因此我决定创建一个脚本来为我完成此任务,因为我需要经常对其进行测试。
想法是我必须访问以下网站: https://www.anaf.ro/inactivi/index.jsp
在第一个字段中输入注册号的地方,第二个字段中必须输入验证码。验证码很容易解决,并且很简单,因为已经有适用于python的库,但是我面临的问题是图像的“ src”属性进入了动态网址。
有什么方法可以保存在Webdriver上使用.get时显示的图像?
这就是我要解决的问题的方式:
from captcha_solver import CaptchaSolver
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.anaf.ro/inactivi/index.jsp")
time.sleep(5)
elem = driver.find_element_by_name('inputCui') # Find the first input box
elem.send_keys('17741254') # Input the desired code
或者,也许,如果有人对如何解决该问题有其他想法,我愿意提出建议。
答案 0 :(得分:0)
好吧,所以我设法解决了这个问题,我只需要截取页面的屏幕截图,然后裁剪它,然后解码验证码即可。这是那些有兴趣的代码:
def get_captcha(driver, element, path):
location = element.location
size = element.size
driver.save_screenshot(path)
image = Image.open(path)
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
image = image.crop((left, top, right, bottom))
image.save(path, 'png')
img = driver.find_element_by_xpath("//img[1]")
get_captcha(driver, img, "captcha.png")