Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сохранить картинку CAPTCHA, Если она пхп ...  
:(
    Опции темы
GeoGeo
  Дата 26.1.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Как сохранить картинку если она отображается вот так http://uo.emilia.net.ua/Reg/index.php
Т.Е. как результат работы php ?
Спасибо
PM MAIL   Вверх
KSURi
Дата 26.1.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Если понял вас правильно, то:
Код

use LWP::UserAgent->new;
my $ua = LWP::UserAgent->new;
my $res = $ua->get('http://uo.emilia.net.ua/Reg/img.php',
                                 ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
GeoGeo
Дата 26.1.2008, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Если бы все было так просто ... дело в том , что img.php не даёт ссылку на изображение ... 


Код

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get('http://uo.emilia.net.ua/Reg/img.php',
                                 ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;
open (FILE , ">newgif2.gif");
         binmode( FILE );
         print FILE $img;


Сохраняет пустой файл ...
PM MAIL   Вверх
GeoGeo
Дата 26.1.2008, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Код

#!/usr/bin/perl
use strict;
use warnings;
use LWP;
my $ua = LWP::UserAgent->new();
$ua->timeout(5);
$ua->agent( "Mozilla/5.0" );
my $url = "http://uo.emilia.net.ua/Reg/img.php";
my $document = $ua->request( HTTP::Request->new( GET => $url ) );
print "Content-type: text/html\n\n";
open( FILE, ">file23.gif" );
binmode( FILE );
print FILE $document->content;
close( FILE );


Вот по идее должен сохранить . Что - то сохраняет , но картинка не получается .. 


PM MAIL   Вверх
KSURi
Дата 26.1.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Код

#!perl

use LWP::UserAgent;

my $ua = LWP::UserAgent->new(cookie_jar => {});

my $res = $ua->get('http://uo.emilia.net.ua/Reg/index.php'); # получаем куки
die 'request failed' if $res -> is_error;

print 'Cookie: ', $ua -> cookie_jar -> as_string;

$res = $ua->get('http://uo.emilia.net.ua/Reg/img.php', # запрашиваем картинку (с куками)
                ':content_file' => 'picture.gif');
die 'request failed' if $res -> is_error;



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
nitr
Дата 26.1.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Всё отлично KSURi, но для куки можно и head использовать, что согласитесь быстрее (зачастую в 10раз)
т.е. 7 строка
Код

my $res = $ua->head('http://uo.emilia.net.ua/Reg/index.php'); # получаем куки
die 'request failed' if $res -> is_error;



--------------------
PM   Вверх
nitr
Дата 26.1.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Кстати, иногда скрипт img.php с того сайта выдает ошибку, поэтому у вас может "не получится" картинка, хотя есть решение - удалить эту ошибку, которая вставляется в picture.gif.


--------------------
PM   Вверх
KSURi
Дата 26.1.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(nitr @  26.1.2008,  21:23 Найти цитируемый пост)
Всё отлично KSURi, но для куки можно и head использовать, что согласитесь быстрее (зачастую в 10раз)

Да, согласен, так будет гораздо лучше.

Цитата(nitr @  26.1.2008,  22:09 Найти цитируемый пост)
Кстати, иногда скрипт img.php с того сайта выдает ошибку, поэтому у вас может "не получится" картинка, хотя есть решение - удалить эту ошибку, которая вставляется в picture.gif. 

Тоже заметил это: ;<br />
<b>Warning</b>:  Wrong parameter count for imagedestroy() in <b>/opt/lampp/htdocs/Reg/img.php</b> on line <b>9</b><br />
.
Но это не должно влиять на целостность картинки. Данные добавляются в конец файла, заголовок GIF и сама структура рисунка остаются целыми. Текст ошибки скорее всего просто не обрабатывается при построении картинки.
Десять раз подряд запустил скрипт, и 10 раз получил валидную картинку.
Посмотрите "исходный код" гифки в аттаче.

Это сообщение отредактировал(а) KSURi - 26.1.2008, 22:53

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  picture.gif 0,25 Kb


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
nitr
Дата 26.1.2008, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



30 из 50 - в конце файла picture.gif ошибка 
Цитата(KSURi @  26.1.2008,  22:51 Найти цитируемый пост)
;<br /><b>Warning</b>:  Wrong parameter count for imagedestroy() in <b>/opt/lampp/htdocs/Reg/img.php</b> on line <b>9</b><br />


Я ж верю что работает smile Просто ошибка частая. Так что, надо и это учитывать, автору этой темы ;)


--------------------
PM   Вверх
Str!pe
Дата 26.1.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



GeoGeo, http://uo.emilia.net.ua/Reg/img.php вот отсюда и сохраняй, она прекрасно сохраняется.

Это сообщение отредактировал(а) Str!pe - 26.1.2008, 23:52


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 27.1.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Str!pe, ответ KSURi, был полным smile
Смотрим внимательно на строку 12 smile


--------------------
PM   Вверх
GeoGeo
  Дата 27.1.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Всем огромное спасибо .

Ещё один вопрос , куки отлавливать надо один раз ?

Потом при каждом вызове $ua->get("URL"); куки отлавливаются и  передаются автоматически ?
или пере каждым новым запросом надо ловить заново ?
PM MAIL   Вверх
nitr
Дата 27.1.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



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


--------------------
PM   Вверх
GeoGeo
Дата 27.1.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Можно ли как-то запретить установку новых куки при запросе .

Код примерно такой :
Код

use strict;
use warnings;
use LWP;
use HTTP::Cookies;

my $ua = LWP::UserAgent->new();
$ua->timeout(5);
$ua->agent( "Mozilla/5.0" );
my $cookies = HTTP::Cookies->new();
$ua->cookie_jar($cookies);

$ua->get("URL"); #Тут получили куки....
$ua->get("URL1"); # Вот чтоб тут не ставились куки по новой, а использовались из первого запроса
$ua->get("URL2"); # И тут тоже ... 



 use LWP::Debug qw(+ -conns); - когда подключаю это  , вижу  что куки ставяться при каждом $ua->get

Это сообщение отредактировал(а) GeoGeo - 27.1.2008, 19:50
PM MAIL   Вверх
GeoGeo
Дата 27.1.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Вобще есть ли какая-то возможность сохранить картинку без запроса к img.php ?
картинка ведь отображается на index.php ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.