2016-04-02 8 views
0

Borç veren stat dosyalarını ödünç verme kulübünden indirmeye çalışıyorum. Dosyanın iki versiyonunu güvenli bir sürüm ve normal bir sürüm olarak sunarlar. . Ben güvenli sürümü indirmek için giriş yapmanızÖdünç veren Club web sitesi CURL aracılığıyla oturum açmama izin vermiyor

url gibi bir şey okur: "yayınlanan" https://resources.lendingclub.com/secure/LoanStats3a_securev1.csv.zip?signature=foo&issued=bar

"imza" ve ikisi de ben her giriş saatini değiştirmek ve sayfaya göz görünmektedir .

Çözümüm siteye giriş yapmak, indirme sayfasına gitmek ve sorgu dizgisiyle tam URL'yi almak. Ben siteye eriştiğinizde

$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; 

Ben başlığını koklama kullanıcı aracı dizesini var bir http 200 tepkisini Ve

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 
... 

olsun:

Ben giriş yapmak için aşağıdaki kod çalıştı tarayıcımda

Öğleden sonra gezmenin iyi bir kısmını ve bu soruna bir yol bulmaya çalıştım. Kurabiyelerle denedim ve işe yaramadı.

Başka neler deneyebilirim?

Teşekkür ederiz.

cevap

0

Birkaç şey denedikten sonra, sorunum için bir çözüm bulabiliyordum. İlk cURL isteği benim giriş kimlik (kullanıcı adı ve şifre) kullanarak Borç verme Club'a giriş çalışıyordu

: Ben, bir kişinin başvuru için burada ilanıyla

gelecekte benzer bir sorun vardır. Site giriş yapmama izin vermedi ve beni giriş ekranına yönlendirdi.

Benim çözümüm 2 cURL isteklerini kullanmaktı. Kimlik bilgilerim olmadan giriş sayfasının ilki. Bunu yaptım, böylece site tarafından belirlenen çerezleri kurtarabilirim. Sonra bu çerezi ikinci cURL isteğimde kullandım - bu benim giriş kimlik bilgilerimle. İşe yaradı.

çalışma kodlarına bakınız:

$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); 

Ayrıca, hala web sitesi Internet Explorer'ın bu sürümünü desteklemiyor mesajı alıyorum. Ama sadece bir uyarı gibi görünüyor. Hala giriş yapabilirim.

Teşekkürler.

+0

Yaptığınız şeylerle ilgileniyorsunuz. Java kullanarak çok benzer bir şey üzerinde çalışıyorum. Seninle sohbet etmek isterim. –

İlgili konular