1
私は数分後に実行してデータを取得するスクリプトを開発しました。私が最初にログインした後、特定のリンクからデータを取得する必要があるたびに。私はログイン後に特定のリンクから一度だけデータを取得し、毎回ログインしないようにする方法を知りたいだけです。ログイン後にリンクからデータをスクラップする方法
ログインページが自動的に非表示のフィールド名を生成する「テスト名」ので、私は最初のログインページをスクラップして隠しフィールドを取得するために、その隠しフィールド
にスクレーパーログインページを取得します。
<?php
$url="http://www.example.com/login";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$cookie = 'cookies.txt';
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
$result3 = preg_match('/<input type="hidden" name="testname" value=" (.*?)"/', $content, $matches);
//Script to login the page after getting hidden field from login page and I want to login only once this code and do not login each time
$fields=array('testname'=>$matches[1],'email' => 'username', 'password' => 'password','btnLogin'=>'login');
$url1 = "http://www.example.com/comapny/index.php";
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url1);
$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_REFERER, $url1);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt ($ch,CURLOPT_POSTFIELDS,$fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
// After login I want to get the data from below link after every 10min
$url1="http://www.example.com/abc/detail.php";
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_URL, $url1);
$result = curl_exec($ch);