1

私はスクレイピングスクリプトに取り組んでいます。ほとんどの Web サイトで機能しますが、特定の SSL サイトにアクセスできません。

これが私のコードです:

if (!extension_loaded('openssl')){
    // not occurring
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.chase.com/');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

$result = curl_exec($ch);

if($result === false)
{
    $err = curl_error($ch);
    //$err = SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
}

$resultは常にFALSEであり、次のエラー メッセージが表示されます。

SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054

ただし、SSL を使用している他の Web サイトでは機能します。phpinfo()また、cURLとOpenSSLがアクティブであることも確認しました。私は WAMP を使用していますが、何かアイデアはありますか?

4

2 に答える 2

2

Useragent を設定する必要があります。ある場合とない場合でテストしたところ、問題が修正されました。Chase は、リクエストで UA を提供することを望んでいるようです。

これを追加します:

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US)'); 
于 2013-04-07T01:49:14.717 に答える