2017-03-21 11 views
0

私はproxymillionを使用してGoogleからデータをスクラップしています。私は、私のコードcURLのProxymillion IP

$proxies[] = 'username:[email protected]:port'; // Some proxies require user, password, IP and port number 
$proxies[] = 'username:[email protected]:port'; // Some proxies require user, password, IP and port number 
$proxies[] = 'username:[email protected]:port'; // Some proxies require user,  password, IP and port number 
$proxies[] = 'username:[email protected]:port'; // Some proxies require user, password, IP and port number 


if (isset($proxies)) { // If the $proxies array contains items, then 
$proxy = $proxies[array_rand($proxies)]; // Select a random proxy from the array and assign to $proxy variable 
} 
$ch = curl_init(); 
if (isset($proxy)) { // If the $proxy variable is set, then 
    curl_setopt($ch, CURLOPT_PROXY, $proxy); // Set CURLOPT_PROXY with proxy in $proxy variable 
} 
$url="https://www.google.com.pk/?gws_rd=cr,ssl&ei=8kXQWNChIsTSvgSZ3J24DA#q=pakistan&*"; 


curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
// curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); 
// curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$page = curl_exec($ch); 
curl_close($ch); 
$dom = new simple_html_dom(); 
$html = $dom->load($page); 

$title=$html->find("title",0); 
echo $title->innertext; 
+0

あなたは、テストしているサービスがPUTメソッドを許可していることを100%確信していますか? – csmckelvey

+0

@takendarkkいいえ、インターネットから何か助けてもらえますが、うまくいきませんでした。「PUT」を含むようなものを取り除くと、ページが空白になります –

+0

サービスについて読んで、どのような方法が可能かを調べる必要があります。 – csmckelvey

答えて

0

私は右推測している場合は、Googleをこするための予算のソリューションを探しています(メソッド許可されていません)!! 1

をカールを使用しますが、結果を取得し、エラーエラー405を取得しておりませんそのため、コメントにリンクしたサンプルコードでproxymillionプロバイダに切り替えたのはなぜですか?

大量に共有されているプロキシ(これはあなたが奪ったプロバイダ)で掻き取ることはできません.Googleはそれらを直接または数ページ内に見つけてブロックします。
また、 "& ei = 8kXQWNChIsTSvgSZ3J24DA"を使用することはおすすめできません。これはGoogleのデフォルトエントリではなく、スクラップリクエストをブラウザとリンクすることになります。

予算ソリューションを探す場合は、スクレイピングサービス(PHPソースコードはhttp://scraping.services/?api&chapter=Source%20Code)を使用することを検討することができます。これは、ほとんどの場合プライベートプロキシよりも安価で、数千ドルのキーワードを数千回掻き取ることができます。

また、そのルートを続行したい場合は、単純なbashスクリプトを使用してproxymillionのパフォーマンスをテストすることをお勧めします。
bcurlまたはlynxをbashスクリプトで使用します(Linuxを使用している場合は、MinGW/msysを使用してWindowsでも同じことができます)。プロキシを使用してGoogleにアクセスさせるだけです。それがまったく動作するか、数ページ以内にブロックされるかどうかを確認してください。
成功した場合でも、すべての共有プロキシプロバイダは「パフォーマンス」において信頼性がありません。