При работе с современными порталами, получение капчи стало намного сложней. Теперь они генерируются динамически и даже при передаче правильных cookie и referer и попытке ее скачать, вы все равно получите другое значение, нежели было изначально.
По параметрам:
575 - срез по левому краю
505 - срез от верха
w-155 - срез по правому краю, мы отсекаем данные от начальной ширины
h-1820 - срез от низа, отнимаем от начальной высоты
Ну вот и все, дальше сохраняем эту капчу и делаем с ней что хотим. Способ достаточно дубовый, но рабочий :)
В принципе это убивает возможности работать с ресурсом, посредством curl и httplib. Но selenium почти полностью эмилирует браузер и это нам на руку.
Как вариант мы можем скачать скрин сайта и через PIL сделать срез нужных координат. Ну и дальше полученную часть отправить на сервисы распознавания, либо вбить руками.
Как мы поступаем:
from selenium.webdriver import Firefox
from PIL import Image
browser = Firefox()Простыми словами. Мы переходим на сайт, сохраняем полный скриншот страницы. Дальше открываем его через PIL.Image и получаем высоту/ширину этого скрина. Потом с помощью crop мы делаем отсечение по координатах.
browser.get(' интересующий сайт ')
browser.save_screenshot('current_page')
current_page_img = Image.open('current_page')
w, h = current_page_img.size
captcha_img = current_page_img.crop((575, 505, w-155, h-1820))
captcha_img.save('captcha', 'jpeg')
По параметрам:
575 - срез по левому краю
505 - срез от верха
w-155 - срез по правому краю, мы отсекаем данные от начальной ширины
h-1820 - срез от низа, отнимаем от начальной высоты
Ну вот и все, дальше сохраняем эту капчу и делаем с ней что хотим. Способ достаточно дубовый, но рабочий :)