Есть ли способ сохранить изображение с картинки и просмотреть его позже в python?

Я пишу скрипт на python для некоторой веб-автоматизации. Я знаю, что не могу автоматизировать капчи, но вот что я хочу сделать:

Я хочу автоматизировать все, что могу, вплоть до капчи. Когда я открываю страницу (используя urllib2) и анализирую ее, чтобы обнаружить, что она содержит капчу, я хочу открыть капчу с помощью Tkinter. Теперь я знаю, что мне придется сначала сохранить изображение на жесткий диск, а затем открыть его, но перед этим возникла проблема. Изображение капчи, которое находится на экране, нигде не находится непосредственно в источнике. В источнике внутри некоторого javascript есть переменная, которая указывает на другую страницу со ссылкой на изображение, НО, если вы загружаете эту среднюю страницу, изображение капчи для этой ссылки изменяется, поэтому изображение, связанное с этой переменной javascript, Более не действителен. Может быть невозможно собрать изображение с помощью этого метода, поэтому, пожалуйста, просветите меня, если у вас есть какие-либо идеи по этому поводу.

Теперь, если я использую firebug для загрузки страницы, есть «GET», который является прямой ссылкой на текущее изображение Captcha, которое я вижу, и мне интересно, есть ли способ заставить python или ullib2 увидеть «GET» , которые происходят при загрузке страницы, потому что если бы это было возможно, это было бы просто.

Пожалуйста, дайте мне знать, если у вас есть какие-либо предложения.


person Alex    schedule 02.09.2010    source источник
comment
Я знаю, что не могу автоматизировать капчу Кто говорит?   -  person NullUserException    schedule 02.09.2010
comment
разрабатывать? может кто сможет. НО я не думаю, что смогу.   -  person Alex    schedule 02.09.2010


Ответы (1)


Конечно, капча обслуживается страницей, которая каждый раз будет обслуживать новую (если она будет повторяться, то после того, как она будет решена для одного поддельного идентификатора пользователя, спамер может автоматически заработать миллион!). Я думаю, вам нужна некоторая функция «снимка экрана» для захвата изображения, которое вы хотите - нет кросс-платформенного способа вызвать такую ​​​​функциональность, но каждая платформа (или диспетчер рабочего стола в случае Linux, BSD и т. д.), как правило, имеет один . Или вы можете автоматизировать браузер (например, через SeleniumRC), чтобы в нужное время делать скриншоты (например, "печатать в PDF"). (Я полагаю, что то, что вы видите в firebug, может ввести вас в заблуждение, потому что оно это "показывает снимок"... только на уровне источника html или DOM, а не на уровне экрана/растрового изображения).

person Alex Martelli    schedule 02.09.2010
comment
Итак, я понял, что это возможно сделать следующим образом: когда python загружает URL-адрес, он загружает только источник, а команда javascript для загрузки страницы вызова не выполняется. Поэтому я считаю, что могу загрузить страницу вызова, и она будет рассматривать ее как первую загрузку, и, следовательно, изображение, на которое она указывает, будет действительным. Кажется, все работает, за исключением того, что в запросе POST есть что-то, связанное с psig, что мой пост отсутствует, и я не могу понять, откуда он исходит. - person Alex; 02.09.2010