安全なログインを使用してサイトコンテンツをスクラップする

私は、ログインが確保されたサイトの内容を掻き取ろうとしています しかしそれをすることができません サイトのログインには、ユーザー名、パスワード、パスコードの3つのオプションがあります ここで私が使用しているコードです

<?php

// HTTP authentication

$url = "http://aftabcurrency.com/login_script.php";

$ch = curl_init();    

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt';
$timeout = 30;
curl_setopt($curl, CURLOPT_TIMEOUT,         10); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,  $timeout );
curl_setopt($curl, CURLOPT_COOKIEJAR,       $cookie);
curl_setopt($curl, CURLOPT_COOKIEFILE,      $cookie);

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");             

$result = curl_exec($ch); 

curl_close($ch); 

echo $result;

?>
5
私はあなたが答えで受け入れた変更でこのコードを試しましたが、このコードは私のために働いていません、私はAmazonの売り手アカウントの詳細を使用していますが、何も起こっていません。
追加された 著者 Working Hard..,

2 答え

http://aftabcurrency.com/login_script.php POST する必要がありますa> あなたのカールもクッキーを受け入れる必要があります。
認証後、スクリプトからリダイレクトされるので、 CURLOPT_FOLLOWACTION も追加する必要があります。

ここであなたのスクリプトの編集版ですが、私は http://aftabcurrency.com/ でそれをテストすることはできません作品:

$url = "http://aftabcurrency.com/login_script.php";

$ch = curl_init();    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt';
$timeout = 30;

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,         10); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,  $timeout );
curl_setopt($ch, CURLOPT_COOKIEJAR,       $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE,      $cookie);

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");     

$result = curl_exec($ch);

/* //OPTIONAL - Redirect to another page after login
$url = "http://aftabcurrency.com/some_other_page";
curl_setopt ($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
 */ //end OPTIONAL 

curl_close($ch); 
echo $result;
7
追加された
ログインした後に同じサイトの別のページにリダイレクトする方法を示すオプションコードを追加しました。
追加された 著者 jsherk,
ここであなたのコードを編集しました。あなたのクッキーの部分で間違った変数($ curlではなく$ ch)を設定しました。また、ログイン後にスクリプトがリダイレクトできるようにCURLOPT_FOLLOWACTIONを追加しました。
追加された 著者 MilMike,
PHPの文字列検索関数、正規表現、DOM/simplexml(xpath)など、htmlコンテンツをスクラップする方法はたくさんあります。
追加された 著者 MilMike,
ここでは、私は500文字を書くことができないので、ここでコードを書くことはできません..;)またはスタックオーバーフローでそれを検索 - キーワードを使用してください:PHPは、個人的に私はxpath(simplexml)でこれを行うでしょう。
追加された 著者 MilMike,
この回答を受け入れる場合のみ)
追加された 著者 MilMike,
編集されたコードは、これがクッキーを投稿する正しい方法ですか?
追加された 著者 user1447187,
ありがとうございます何が私は特定の "テキスト"をそのページから例えば aftabcurrency.com で掻き出したいのですか? "私たちのサービスは重要です!" (このテキストは毎日変わる)任意のアイデア?
追加された 著者 user1447187,
短いヒントやチュートリアルへのリンクを教えていただけますか?
追加された 著者 user1447187,
カールでやる方法を教えてもらえますか?上記のコードをどのように統合するのですか?
追加された 著者 user1447187,
このサイトでコードを見つけました。 digeratimarketing.co .uk/2008/12/16/curl-page-scraping-script しかし、上記のコードに統合することはできません
追加された 著者 user1447187,
- qxxxは私が上で与えた新しい質問に答えることができますか?
追加された 著者 user1447187,
オハイオ州私はそれを感謝した
追加された 著者 user1447187,

そのページにあなたのユーザー名/パスワード/パスコードをPOSTする必要があります。あなたが今しようとしているのは、http認証です。 だからこの代わりに

curl_setopt($ch, CURLOPT_USERPWD, "demo:demopass:demopasscode"); 

あなたにはこれが必要です

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, "user_name=xxxxx&user_password=xxxxxx&passcode=xxxxx"); 
0
追加された
完了しましたが、今は空白のページが表示されます
追加された 著者 user1447187,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com