2012-04-20 8 views
0

Googleから特定のリンクを抽出するループを作成しました。しかし、私はこのスクリプトを実行している最中に、リンクなしで空のファイルを作成しています。リンク抽出スクリプトはPHPでケーシングの問題です

for ($n=0;$n<500;$n+=10) 
{ 
$country = $_GET['country']; 
    // Country Changing array to scan through different countries. 
     $google = array (
      "default" => array("google.com" , "countryUS"), 
      "NZ" => array("google.co.nz" , "countryNZ"), 
      "UK" => array("google.co.uk" , "countryUK|countryGB"), 
      "AU" => array("google.com.au" , "countryAU")   
     ); 
// Variables for fopen 
    $URL = 'www.'.$google[$country][0]; 
    $PORT = "80"; 
    $TIMEOUT = 30; 
    $Q = $_GET['query']; 


// Google String 
$GET = '/search?q='.urlencode($Q).'&hl=en&cr='.$google[$country][1].'&tbs=ctr:'.$google[$country][1].'&start='.$n.'&sa=N'; 
    $fp = fsockopen($URL, $PORT, $errno, $errstr, $TIMEOUT); 
    if (!$fp) 
    { 
     echo "Error connecting to {$URL}<br>\n"; 
    } else 
    { 
     $out = "GET $GET HTTP/1.1\r\n"; 
     $out .= "Host: $URL\r\n"; 
     $out .= "Connection: Close\r\n\r\n"; 
     fwrite($fp, $out); 
     $buffer = ''; 
     while (!feof($fp)) 
     { 
      $buffer .= fgets($fp, 128); 
     } 
     fclose($fp); 
     write($SITEs, filter($buffer)); 

    } 
} 

私は何か間違っていますか教えてください。

注:私のPHPではfopenがオンです。

追加:あなたはあなたのファイルを開いていない

function write($A, $B) { 
     @touch($A); 
     $C = fopen($A, 'a'); 
     fwrite($C, $B); 
     fclose($C); 
    } 
+0

ありません。データを取り出してエコーしてみてください。 –

+0

このようにGoogleがあなたのIPブロックに対処する準備をしてください。 – anubhava

+0

@anubhava ipは900以上のリンクを使ってブロックされていますが、500リンクのループを設定しています。問題はありません。 –

答えて

0

あなたが書くつもりです!

また、私はあなたがこのようにGoogleにクロールすることはできません確信している何のPHP関数write()

+0

よく書く関数がscrtiptにあります –

+0

私は 'write()'のfuntionも追加しました。 –

関連する問題