何らかの理由で、この特定のWebページのコンテンツをcURLで取得できないようです。私はcURLを使用して "トップレベルのページ"のコンテンツを正常に取得できましたが、同じ自己構築のクイックcURL関数は、リンクされていないサブWebページのいずれかで機能していないようです。cURLを介してWebページのコンテンツを取得できないようです - ユーザーエージェントとHTTPヘッダーの両方が設定されていますか?
トップレベルのページ:http://www.deindeal.ch/
サブページ:http://www.deindeal.ch/deals/hotel-cristal-in-nuernberg-30/
私(のfunctions.php内)のcURL関数
function curl_get($url) {
$ch = curl_init();
$header = array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Accept-Language: en-us;q=0.8,en;q=0.6'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13',
CURLOPT_HTTPHEADER => $header
);
curl_setopt_array($ch, $options);
$return = curl_exec($ch);
curl_close($ch);
return $return;
}
PHPファイルを取得するには内容(テスト用にエコーを使用)
require "functions.php";
require "phpQuery.php";
echo curl_get('http://www.deindeal.ch/deals/hotel-walliserhof-zermatt-2-naechte-30/');
これまでのところ、私はこれが
- を動作させるために、以下しようとしてきた両方のローカル(XAMPP)リモート(LAMP)ファイルを実行しました。
- のように、ユーザエージェントとHTTPヘッダーには、
curl_get()
のすべてのオプションが現在のものとして含まれていましたが、CURLOPT_USERAGENTand
CURLOPT_HTTPHEADERS`を除くすべてのオプションが含まれています。
実際のブラウザ要求を行うために提供されたデータの量に関係なく、ウェブサイトがcURLまたはその他のリモートファイルオープンメカニズムを介して要求を完全にブロックする可能性はありますか?
また、なぜ私の要求が何のために起きているのかを診断することは可能ですか?
上記の2つの質問に答える、またはcURLとは異なる方法であってもファイルの内容を取得するための編集/提案があれば助かります)。あなたのオプションに
CURLOPT_FOLLOWLOCATION => TRUE
を:
「CURLOPT_FOLLOWLOCATION」を追加してくれてありがとうございました。応答ヘッダー( 'http://www.deindeal.ch/welcome/?..'へのリダイレクト)に応じて動作しましたが、現在は応答ヘッダーブラウザでURLにアクセスしようとするよりも別の場所が表示されています。ブラウザでURLを訪問すると、自分がリダイレクトされていないことがわかります.URLは完全に要求されますが、cURLリクエストが行われると、別の場所が提供されます。 – Avicinnian
上記の私の編集を参照してください。 – sberry