Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.08.2010, 22:52
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
Печаль капча

Знаю что тема заезжана вдоль и поперёк, но всё же не могу панять как парсить страницу на каторой находится капча если все строницы как я смотрел имеют общий тег <img src="
Ответить с цитированием
  #2  
Старый 20.08.2010, 00:08
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,047
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

непонятен вопрос.
в чем проблема?
Ответить с цитированием
  #3  
Старый 20.08.2010, 00:27
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

знаю как капчу сразу по прямой ссылки
PHP код:
procedure TForm10.Button1Click(SenderTObject);
var
s:TStringStream;
  
sl:TStringList;
  
TJPEGImage;
  
ms TMemoryStream;
begin
  ms 
:= TMemoryStream.Create;
idhttp1.get(url+'logincap.php',ms);
  
ms.Seek(0,0);
  
:= TJPEGImage.Create;
  
j.LoadFromStream(ms);
  
ms.Free;
  
j.Free;
end
а как отпарсить эту ссылку на капчу по тегу <img src=" не пойму
Ответить с цитированием
  #4  
Старый 20.08.2010, 06:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,047
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Взять url из атрибута src и далее уже приведенным кодом.
Т.е. в 2 захода. Сначала качаем страничку, парсим ее, выдираем url, а потом качаем саму капчу.
Ответить с цитированием
  #5  
Старый 20.08.2010, 08:31
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

да уж, про каптчу понаписано много, но мне никак не удается увидеть ни одного рабочего примера. спрошу еще в этой теме: может кто-то поделится ссылкой или еще чем? это ж самый простой вопрос: у меня есть картинка, куда мне ее "девать", чтобы получить код?
Ответить с цитированием
  #6  
Старый 20.08.2010, 11:21
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

NumLock если бы я нашёл пример нармальный то сам бы не спрашивал
Ответить с цитированием
  #7  
Старый 20.08.2010, 12:48
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

скинь html код и мы его тебе распарсим
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #8  
Старый 20.08.2010, 14:18
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

PHP код:
<form action="login.php" method="post">
<
div id="form">
    <
table border="0" align="center" cellspacing="1" cellpadding="1">
            <
tr><td><b>Логин:</b></td></tr>

        <
tr><td><input type="text" size="25" maxlength="25" name="username" id="username" onfocus="focus_username(this)" value="Логин" tabindex="1" /></td></tr>

        <
tr><td><b>Пароль:</b></td></tr>

        <
tr><td><input type="password" size="25" maxlength="25" name="password" id="password" onfocus="focus_password(this)" value="------------" tabindex="2" /></td></tr>

        <
tr><td><b>Защитный код:</b></td></tr>

        <
tr><td><img id="login" src="newcaptcha.php" width="80" height="20" border="0" align="middle" alt="" /><a href="javascript:refresh_on('login');"><img src="img/refresh.png" align="middle" width="18" height="18" alt="Обновить" title="Обновить" /></a><input type="text" size="5" maxlength="5" name="captcha" class="field" value="" /></td></tr>
    </
table>
</
div>
<
center><input type="submit" class="button" value="Войти в аккаунт" onclick="return Formdata(this.form)" /></center>
</
form>
<
br /> 
капча тут <img id="login" src="newcaptcha.php"
Ответить с цитированием
  #9  
Старый 20.08.2010, 18:53
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

пробывал так, но не парсит
Код:
var
s:TStringStream;
data:TStringList;
st:String;
img: TMemoryStream;
otvet:String;
jpg: TJpegImage;
begin
s := TStringStream.Create;
IdHTTP1.Get('http://wmmaks.ru/',s);
while Pos('img src=',st)>0 do begin
(Copy(st,Pos('img src=',st)+12,7));
IdHTTP1.Get('http://wmmaks.ru/'+st);
Delete(st,1, Pos('img src=',st)+12);
jpg.LoadFromStream(img);
form10.image1.Picture.Assign(jpg);
jpg.Free;
img.Free;
end;
end;

Последний раз редактировалось Admin, 21.08.2010 в 23:29.
Ответить с цитированием
  #10  
Старый 20.08.2010, 20:23
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Третий вопрос, а смысл один о тот же.
Вы ссылки то хоть смотрели?
Ответить с цитированием
  #11  
Старый 20.08.2010, 21:59
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

смотрел и не чего путного не нашёл
Ответить с цитированием
  #12  
Старый 21.08.2010, 01:51
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Код:
(Copy(st,Pos('img src=',st)+12,7));
Это че? Куда результат-то копирования заносите?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 21.08.2010, 12:23
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

st в string и пытаюсь произвести чтение из него
Ответить с цитированием
  #14  
Старый 21.08.2010, 13:21
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вы в этом уверены?
Код:
while Pos('img src=',st)>0 do begin
(Copy(st,Pos('img src=',st)+12,7));
IdHTTP1.Get('http://wmmaks.ru/'+st);
Я в этом коде вижу пустой вызов
Код:
(Copy(st,Pos('img src=',st)+12,7));
который ничего по сути не делает. Может вы хотели так:
Код:
st := Copy(st,Pos('img src=',st)+12,7);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter