2013-03-26 2 views
-4

Delphi 2010 및 최신 버전의 Indy 10을 사용하여 Craigslist에 로그인하려고하고 있으며, 내 모든 게시물 목록을 수집하기 위해 내 계정 페이지를 검색합니다.Craigslist에 로그인 할 때 로그인 페이지가 표시되는 이유는 무엇입니까?

그러나 로그인 정보를 게시하면 the returned HTMLthat of the login page이고, my account page listing my postings이 될 것으로 예상됩니다. 여기

내 최신 코드 :

function TfrmMain.Login: string; 
var 
    IdHTTP: TIdHTTP; 
    Request: TStringList; 
    Response: TMemoryStream; 
    SSLHandler: TIdSSLIOHandlerSocketOpenSSL; 
begin 
    Result := ''; 
    try 
    Response := TMemoryStream.Create; 
    try 
     Request := TStringList.Create; 
     try 
     Request.Add('op=login'); 
     Request.Add('redirect=http://www.craigslist.org/'); 
     Request.Add('login=' + edtEmail.Text); 
     Request.Add('password=' + edtPassword.Text); 
     IdHTTP := TIdHTTP.Create; 
     try 
      SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); 
      try 
      SSLHandler.SSLOptions.Method := sslvSSLv3; 
      SSLHandler.SSLOptions.Mode := sslmUnassigned; 

      IdHTTP.IOHandler := SSLHandler; 
      IdHTTP.AllowCookies := True; 
      IdHTTP.HandleRedirects := True; 
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; 
      IdHTTP.Post('https://accounts.craigslist.org/login', Request, Response); 
      Result := IdHTTP.Get('https://accounts.craigslist.org/'); 
      finally 
      SSLHandler.Free; 
      end; 
     finally 
      IdHTTP.Free; 
     end; 
     finally 
     Request.Free; 
     end; 
    finally 
     Response.Free; 
    end; 
    except 
    on E: Exception do 
     ShowMessage(E.Message); 
    end; 
end; 

나는 그들이 요청 매개 변수에 전달되는대로 이메일과 비밀번호가 올바른 값입니다 디버깅을 통해 확인했다, 그래서 페이지를하지 않는 이유 기대 ?

답변

4

받은 HTML에 따르면, 로그인 필드의 이름은 login이 아니라 inputEmailHandle입니다. 마찬가지로 암호 필드는 password이 아니라 입니다. step, rtrp을 비롯하여 생략 한 추가 필드가 있습니다. 양식에 op 또는 redirect 필드가 표시되지 않습니다.

즉, 여기에 표시된 코드는 Craigslist에 로그인하는 코드가 아닙니다. 주변 코드의 중요성을 고려하지 않고 주소가 변경된 code for logging in to Filestrum입니다.