2016-04-02 3 views
0

貸出クラブから貸出金額ファイルをダウンロードしようとしています。彼らは、ファイルの2つのバージョンを安全なバージョンと通常のバージョンの2つを提供しています。 。 https://resources.lendingclub.com/secure/LoanStats3a_securev1.csv.zip?signature=foo&issued=bar貸出クラブのウェブサイトでCURLを使用してログインできない

「署名」と「発行」私がログインするたびに変更し、ページを閲覧しているように見える両方:私は、ログインする必要があり、安全なバージョンをダウンロードするため

内のURLは次のように読み込みます。

私の解決方法は、サイトにログインし、ダウンロードページにアクセスして、クエリ文字列で完全なURLを取得することです。

私がログインするために、次のコードを試してみました:

$username = "[email protected]"; 
$password = "mypassword"; 

$url='https://www.lendingclub.com/account/login.action?login_email='.$username.'&login_password='.$password; 
$agent= 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_URL,$url); 
$result=curl_exec($ch); 
$httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 

var_dump($httpcode); 
var_dump($result); 
return; 

私は200と

int(200) string(32454) "  
This website does not support this version of Internet Explorer. Please upgrade to the latest version for a better experience. Upgrade Now 
... 

のHTTP応答を取得する私は、サイトにアクセスしたとき、私はヘッダをスニッフィングすることにより、ユーザエージェント文字列を得ました私のブラウザで。

私は午後にグーグルで過ごし、この問題を回避する方法を見つけようとしました。私はクッキーで試したが、うまくいかなかった。

他に何ができるのですか?

ありがとうございます。

答えて

0

もう少し試してみると、ついに私の問題の解決策を見つけることができました。私はケースの誰かに参照のためにここでそれを掲示しています

は、将来的に同様の問題があります。

私は最初のcURLのリクエストで私のログイン資格情報(ユーザー名とパスワード)を使用して、貸出クラブにログインしようとしていました。このサイトではログインできず、ログイン画面にリダイレクトされ続けました。

解決策は2つのcURLリクエストを使用することでした。最初のものは、私の資格情報を持たないログインページです。私はサイトで設定されたクッキーを保存できるようにしました。その後、私は2回目のcURLリクエストでそのCookieを使用しました。出来た。

は、作業コード以下を参照してください。

$cookie = 'cookie.txt'; 
$url = 'https://www.lendingclub.com/account/login.action'; 

//first cURL request - no login credentials. Used only to get the cookie from site. 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Accepts all CAs 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); // Stores cookies in the temp file 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$output = curl_exec($ch); 

//second cURL request - with login credentials. Added cookie obtained from first cURL request above. 
$fields = array( 
    'login_email' => '[email protected]', 
    'login_password' => 'mypassword', 
); 
$fields_string = ''; 
foreach($fields as $key=>$value) 
{ 
    $fields_string .= $key . '=' . $value . '&'; 
} 
rtrim($fields_string, '&'); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Accepts all CAs 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, count($fields)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //Uses cookies from the temp file 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); // Stores cookies in the temp file 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Tells cURL to follow redirects 
$output = curl_exec($ch); 

はまた、私はまだウェブサイトは、Internet Explorerのこのバージョンをサポートしていないメッセージを受信して​​います。しかしそれはただの警告のようです。私はまだログインすることができます。

ありがとうございました。

+0

あなたがやっていることに興味があります。私はjavaを使用して非常に似た何かに取り組んでいます。あなたとチャットするのが大好きです。 –

関連する問題