Bởi vì liên kết của hình ảnh của src
mang đến cho bạn một hình ảnh Captcha mới ngẫu nhiên một khi bạn mở liên kết đó!
Thay vì tải xuống tệp từ hình ảnh src
, bạn có thể chụp ảnh màn hình để tải xuống ảnh trong trình duyệt. Tuy nhiên, bạn cần phải tải về Pillow
(pip install Pillow
) và sử dụng nó như một cách đề cập trong this answer:
from PIL import Image
from selenium import webdriver
def get_captcha(driver, element, path):
# now that we have the preliminary stuff out of the way time to get that image :D
location = element.location
size = element.size
# saves screenshot of entire page
driver.save_screenshot(path)
# uses PIL library to open image in memory
image = Image.open(path)
left = location['x']
top = location['y'] + 140
right = location['x'] + size['width']
bottom = location['y'] + size['height'] + 140
image = image.crop((left, top, right, bottom)) # defines crop points
image.save(path, 'jpeg') # saves new cropped image
driver = webdriver.Firefox()
driver.get("http://sistemas.cvm.gov.br/?fundosreg")
# change frame
driver.switch_to.frame("Main")
# download image/captcha
img = driver.find_element_by_xpath(".//*[@id='trRandom3']/td[2]/img")
get_captcha(driver, img, "captcha.jpeg")
driver = webdriver.Firefox()
driver.get("http://sistemas.cvm.gov.br/?fundosreg")
# change frame
driver.switch_to.frame("Main")
# download image/captcha
img = driver.find_element_by_xpath(".//*[@id='trRandom3']/td[2]/img")
get_captcha(driver, img, "captcha.jpeg")
(Lưu ý rằng tôi đã thay đổi chút code để nó có thể hoạt động trong trường hợp của bạn.)
Nguồn
2016-04-15 00:45:31
Src cho ảnh không nhất thiết (và có lẽ không) tệp trên đĩa nhưng có khả năng là ảnh được tạo động. Mỗi khi điểm cuối được yêu cầu, một hình ảnh mới được tạo và "câu trả lời" cho CAPTCHA được lưu trong phiên của bạn. – sberry