1. masel

    masel Banned

    Joined:
    3 Apr 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    как сграбить на сайте vkontakte.ru id страницы?
     
  2. lamer811

    lamer811 Elder - Старейшина

    Joined:
    8 Nov 2009
    Messages:
    130
    Likes Received:
    39
    Reputations:
    12
    Для начала сделай авторизацию и покажи, что у тебя получилось
     
  3. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Пример реализации авторизации на сервисе VKontakte.ru с использованием компонента Indy 10

    после правильной авторизации должен вывести id страницы и имя
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes,
      Graphics, Controls, Forms, Dialogs, StdCtrls,
      idHTTP, idCookieManager, IdCookie;
    
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        Edit1: TEdit;
        Edit2: TEdit;
        Button1: TButton;
        Label3: TLabel;
        Label4: TLabel;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      http:TidHttp;
      CooM:TidCookieManager;
      data:TStringList;
      page, id, name:String; 
    begin
      http:=TIdHTTP.Create(Self);
      data :=TStringList.Create;
      CooM:=TidCookieManager.Create(http);
      http.AllowCookies:=true;
      http.CookieManager:=CooM;
      http.HandleRedirects:=true;
    
     {****Включить по желанию****}
    
      //  http.Request.Host:='vkontakte.ru';
      //  http.Request.UserAgent:='Opera/9.51 (Windows NT 5.1; U; ru)';
      //  http.Request.Accept:='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
      //  http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
      //  http.Request.AcceptEncoding:='gzip,deflate';
      //  http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
      //  http.Request.Referer:='http://vkontakte.ru/u=1';
    
      data.Add('u=1');
      data.Add('success_url=');
      data.Add('fail_url=');
      data.Add('try_to_login=1');
      data.Add('email='+Edit1.Text);
      data.Add('pass='+Edit2.Text);
      Page:= http.Post('http://vkontakte.ru/login.php?', data);
      data.Free;
      Coom.Free;
      http.Free;
      name:='';
      name:=copy(page,Pos('<h1> <b>Online</b>',page)+length('<h1> <b>Online</b>'),Pos('<span>',page)-(Pos('<h1> <b>Online</b>',page)+length('<h1> <b>Online</b>')));
      if Pos('<h1> <b>Online</b>',page)<>0 then Label4.Caption:='Name :: '+name;
      id:='';
      if Pos('<input type="hidden" id="mid" value="',page)<>0 then delete(page,1,Pos('<input type="hidden" id="mid" value="',page)-1);
      id:=copy(page,Pos('<input type="hidden" id="mid" value="',page)+length('<input type="hidden" id="mid" value="'),Pos('">',page)-(Pos('<input type="hidden" id="mid" value="',page)+length('<input type="hidden" id="mid" value="')));
      if Pos('<input type="hidden" id="mid" value="',page)<>0 then Label3.Caption:='ID :: '+id;
    
    end;
    end.
     
  4. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    в топку инди
     
  5. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    RedFern.89, ваши предложения!
     
  6. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    Для начинающих кодеров в самый раз.
     
  7. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Throll detected!

    ЗЫ Сам на данный момент использую другую либу, но все равно считаю инди хорошой либой для некриворуких
     
  8. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    function TForm1.Pars(T_, ForS, _T: string): string;
    var
    a, b: integer;
    begin
    Result := '';
    if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
    a := Pos(T_, ForS);
    if a = 0 then
    Exit
    else
    a := a + Length(T_);
    ForS := Copy(ForS, a, Length(ForS) - a + 1);
    b := Pos(_T, ForS);
    if b > 0 then
    Result := Copy(ForS, 1, b - 1);


    var
    Domen:string;
    begin
    Domen :=Form1.Idhttp1.Get('http://vkontakte.ru/settings.php');
    Domen:=Pars('<div class="labeled_text" id="page_url">http://vkontakte.ru/',Domen,'</div>');
    ShowMessage(Domen);
     
  9. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    сам лично исправлял баги в инди и юзал их во многих приложениях, пока не зе*ало. юзайте wininet или сокеты))
     
  10. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    /feed.php
    /feed2.php
     
  11. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    На сокетах ты не напишешь спамер стоимостью 500 у.е. за 3-4 дня ;)
    А разработчик инди в сетевом программировании не один десяток лет, и в этом шарит куда побольше тебя.
    А у тебя же чтобы написать толковый http клиент (с поддержкой SSl, socks, сжатием траффика, обработкой кукисов и т.п. и т.д.) на сокетах уйдет не один месяц работы
     
  12. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    C чего ты это всё взял?
    В инди есть одна херня - он ООПный и юзает VCL
    А для сетевых прог - это ужас.
    В WinInet тоже есть кучка своих багов (к примеру если юзать FTP из него, то рано или поздно прога вылетит, если не будешь обрабатывать эксепшены. Причем вылетает по адресам именно WinInet)

    Сокеты - SSL привентить туда - 10 строк кода.
    Поддержка Socks4/5 (без авторизации) тож строк 10 для каждого типа. Сжатия - нах? Тупо не посылай в заголовке поддержку gzip.
    Куки - тоже довольно простая вешь, которая не требует ничего особенного, причем отпарсить их не составит труда. И спамер можно написать за 2-3 дня максимум. Если учесть что 1 день полностью потратить на реализацию работы с сокетами.
    Зато производительность будет большая и памяти хавать будет на порядок меньше.

    Да и вообще Indy - это Delphi. А Делви для чегото долго работающего - мало подходит. А вот Си самый раз выходит. Да и размер будет довольно маленький.
    Многопоточный коннект бек прокси поддерживающий http(GET, POST, CONNECT + множественные запросы в одной сессии), Socks4, Socks5 - это всё 5 кб без сжатия выходит на Си. Делфи курит в сторонке.

    А GUI быстро на диалогах модно написать и будет тебе счастье.
     
    #12 slesh, 13 May 2010
    Last edited: 13 May 2010
  13. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Ну это ты слишком преувеличил :)

    А про курл что скажешь?
     
  14. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    slesh, написав "ты" я явно указал к кому я обращаюсь. Ты то может и напишешь, но вот насчет него я очень сомневаюсь. Достаточно посмотреть сколько тем открыто по одним и тем же вопросам.
    Сжатие траффика - нужно. Представь ты пишешь спамилку для сайта. Чтобы отправить одно сообщение тебе надо получить 20-кбайтовую страницу, чтобы получить и вычислить параметры, имитируя яваскрипт (сейчас на многих порталах такая "защита").
    Имея ограничение 100 кб/сек без сжатия максимум можно отправить 100/20=5 сообщений в секунду. Со сжатием выйдет примерно 100/8=12 сообщений в секунду.

    Си и дельфи...Это все понятно что на низком уровне надо работать на винапи и никак по другому. Неужели ты подумал что я собирался писать ДДос бота на инди? но вот в прикладном ПО профит от сокетов не очевиден.
     
  15. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    и чо за холивар!?
     
  16. Nelzone

    Nelzone Banned

    Joined:
    12 Apr 2008
    Messages:
    172
    Likes Received:
    134
    Reputations:
    6
    делф круче
     
  17. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Размер.. К чему за его уменьшением гнаться в наше время? Когда у большинства огромные объёмы памяти, процессоры по 4 ядра...

    Что касается Indy, хороший пакет контролов, но сам всё же учусь работать с сокетами.
    По сути инди тоже "сокеты" только в красивой обвёртке.

    Сорри за офф. топ.
     
    #17 iGlass, 13 May 2010
    Last edited: 13 May 2010
  18. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    CURL + GLIB у меня под вендой могу сказать одно они рулят :) и исходники открыты что то новое осваиваю из либ и тут же сорцы смотрю понимаеш на 200 % что пишеш + профит :)
    ну и очень хороший фундамент для ядра программы в GLIB содержится :)
    а CURL вообще прелесть пять минут и регистрация где надо с куками и всем прочим :)
     
  19. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 GhostOnline в сокетах есть маааленькое приимущество.
    Когда допустим тебе нужны куки то незачем тебе отгружать всю страницу целеком, достаточно тока хидер скачать и можно разрывать коннект.

    Кстати, я видел ДДОС бота на Инди )
     
  20. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    ну не только на сокетах можно HEAD выполнить
    curl_easy_setopt(easy, CURLOPT_NOBODY, TRUE); //... юзает метод HEAD
    странно если в indy этого нет :)