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);
}
ありません。データを取り出してエコーしてみてください。 –
このようにGoogleがあなたのIPブロックに対処する準備をしてください。 – anubhava
@anubhava ipは900以上のリンクを使ってブロックされていますが、500リンクのループを設定しています。問題はありません。 –