2016-07-31 6 views
0

私はウェブサイトから国名を取得しようとしています。そのウェブサイトのURLはhttpsで始まるので、データをスクラップできません。私にいくつかの解決策を教えてください。 Scraper error: SSL certificate problem: unable to get local issuer certificatehttpsウェブサイトからデータをスクラップする方法

+1

..あなたは、データを取得します。..それを保存して実行します。http://stackoverflow.com/questions/31162706/how-to-scrape-a-ssl-or-https -url –

答えて

-1

使用

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false) 
0

今日、私はこの問題を解決していると私はそれについて知って来た:

$curl = curl_init('https://testing.co/india'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
$page = curl_exec($curl); 
if (curl_errno($curl)) {`enter code here` 
    echo 'Scraper error: ' . curl_error($curl); 
    exit; 
} 
curl_close($curl); 
$regex = '/<a class="startup-link">(.*?)<\/a>/s'; 
if (preg_match($regex, $page, $list)) 
    echo $list[0]; 
else 
    print "Not found"; 

はこのエラーを取得:

は、ここに私のコードです。

を参照してください。以下は私のために働いているコードです。

// Set so curl_exec returns the result instead of outputting it.<br/> 
$url = "https://www.google.co.in/?gws_rd=ssl";<br/> 
$ch = curl_init();<br/> 
curl_setopt($ch, CURLOPT_URL, $url);<br/><br/> 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br/> 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br/> 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);<br/> 
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "GeoTrustGlobalCA.crt"); 
    <br/> 
// Get the response and close the channel.<br/> 
$response = curl_exec($ch);<br/> 
$link = fopen("data.txt","w+");<br/> 
fputs($link,$response);<br/> 
fclose($link);<br/> 
curl_close($ch);<br/> 

あなたは、この上のパス証明書を持っている... Mozilla Firefoxの上では、1つの情報のアイコンを取得するウェブサイトのURLのhandsideを残しました。次に、[セキュリティ]タブをクリックし、[証明書を表示]を見つけます。 [詳細]タブをクリックします。 証明書階層セクションを参照してください。一番上のラベルをクリックし、EXPORTというオプションがあります。その証明書をエクスポートし、選択した場所にCA証明書を保存します。保存タイプ/形式としてX.509証明書(PEM)を選択してください。


curl_setopt($ ch、CURLOPT_CAINFO、getcwd()。 "GeoTrustGlobalCA.crt");

今通過してください

関連する問題