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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.07.2010, 23:21
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
Восклицание переход по ссылкам

Привет всем, знаю что на форумах скорее всего этот вопрос задавался не раз, но мне он невстретился ни в гугле, ни в яндексе, ни на форумах где я был. Вобщим вопос такой. Есть сайт, на нём ссылки с одинаковой маской, но различной канцовкой. Может кто нить на коде объяснить как по ним переходить. То есть зашёл на урл, взял ссылки парсингом и пошёл по ним, про авторизацию и парсинг знаю, а вот как переходить с сайта по линкам не пойму , поделитесь знаниями если не трудно, очень нада
P.S. пишу через idhttp indy 10
Ответить с цитированием
  #2  
Старый 31.07.2010, 00:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

гм... idhttp.get(S);, где S - это строка, в которой распарсенный линк, не сгодится???
Ответить с цитированием
  #3  
Старый 31.07.2010, 11:44
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

про переменную я знаю, я хотел уточнить если как я понимаю, захожу на страницу, парсингам в переменную вписываю урл(ы) по маске что меня интересует, дальше пишу idhttp.get(сайт/переменная) и цикл или нет?
Вот код который я использую:
Цитата:
procedure TForm2.Button2Click(Sender: TObject);
var
st:TStringStream;
str:AnsiString;
lstr:Ansistring;
li:TListItem;
a:String;
s:TStringStream;
data:TStringList;
i: integer;
begin
s:=TStringStream.Create;
st:=TStringStream.Create;
IdHTTP1.AllowCookies:=true;
data:=tstringlist.create;
try
IdHTTP1:=TIdHTTP.Create(nil);
IdHTTP1.get('' + Form2.Listview1.Items[0].SubItems[0],s);
IdHTTP1.get('' + Form2.Listview1.Items[0].SubItems[0] + 'login.php?r=',s);
Data.Add('username=' +Form2.Listview1.Items[0].SubItems[1]);
Data.Add('password=' + Form2.Listview1.Items[0].SubItems[2]);
IdHTTP1.Post('' + Form2.Listview1.Items[0].SubItems[0]+'login.php',data,s);
IdHTTP1.get('' + Form2.Listview1.Items[0].SubItems[0]+'privatecab.php',s);
s.position:=0;
st:=TStringStream.Create;
IdHttp1.Get('' + Form2.Listview1.Items[0].SubItems[0]+'sites.php',st);
str:=st.DataString;
st.Free;
while Pos('viewp.php?ad',str)>0 do
begin
lstr:=Copy(str,Pos('view p.php?ad',a)+13,6);
Delete(str,1, Pos('viewp.php?ad',a)+12);
li:=ListView1.Items.Add;
li.Caption:=lstr;
end;
finally
idhttp1.free;
end;
end;
Но количество ссылок не отображается, а отображается текст под первой колонкой с верху в низ, да и как по ним перейти ума не приложу

Последний раз редактировалось bulldog, 31.07.2010 в 14:57.
Ответить с цитированием
  #4  
Старый 31.07.2010, 19:32
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

Ну не уж то не кто не подскажет?
Ответить с цитированием
  #5  
Старый 01.08.2010, 02:11
Byblick32 Byblick32 вне форума
Прохожий
 
Регистрация: 31.07.2010
Сообщения: 6
Репутация: 10
По умолчанию

Код:
 Link:='http://site.ru/'; //"маска" ссылки
Memo1.Lines.Append(IdHTTP1.Get('http://site.ru/')); //Получаем исходный код страницы
 for i:=0 to Memo1.Lines.Count-1 do
 if pos(Link, Memo1.Lines[i])<>0 then
 begin
 fullLink:=Copy(Memo1.Lines[i], pos(Link, Memo1.Lines[i]), Length(Link)+100); //копируем ссылку и некоторый код после нее.
 Memo2.Lines.Add(fullLink); //добавляем это в Мемо

//в этом цикле приводим ссылку в человесческий вид
  for i:=0 to Memo2.Lines.Count-1 do
  begin
   fullLink:=Memo2.Lines[i];
   Delete(fullLink, Pos('"', Memo2.Lines[i]), 200);
   Memo2.Lines[i]:=fullLink;
  end;

В итоге в Мемо2 получишь все ссылки по маске с загруженой сранице.
Далее переходишь в цикле по ссылкам и так же копируешь ссылки оттуда если надо))
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter