2016-09-08 5 views
-1

を結果の上に...私は、ファイルに結果を保存し、「バットマン」をGoogleを検索し、簡単なCURLスクリプトを持ってPHP - Googleが

を繰り返す誰かが私にファイルを反復処理するための良い方法を教えてもらえます検索結果のタイトルとURLをそれぞれ検索してください。

これは私のコードです:

function get_remote_file_to_cache() 
{ 
    $the_site = "https://www.google.se/webhp?sourceid=chrome-instant&rlz=1C5CHFA_enSE555SE556&ion=1&espv=2&ie=UTF-8#newwindow=1&q=batman"; 


    $curl = curl_init(); 
    $fp = fopen ("temp_file.txt", "w"); 
    curl_setopt ($curl, CURLOPT_URL, $the_site); 
    curl_setopt ($curl, CURLOPT_FILE, $fp); 

    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, TRUE); 

    curl_exec ($curl); 

    $httpCode = curl_getinfo ($curl, CURLINFO_HTTP_CODE); 
    if ($httpCode == 404) 
    { 
     touch ('cache/404_err.txt'); 
    } /* 
    * else { touch('cache/'.rand(0, 99999).'--all_good.txt'); } 
    */ 
    else 
    { 
     $contents = curl_exec ($curl); 
     fwrite ($fp, $contents); 
    } 

    curl_close ($curl); 
    fclose ($fp); 
} 

echo rand(1, 425).get_remote_file_to_cache(); 
+0

これに対する回答は、せいぜい一時的にしか機能しません。 Googleは積極的にこのようなことをやめ、HTMLを修正したり、物事を移動したり、結果を難読化したり、リクエストが多すぎたり、あなたのIPを禁止したり、キャプチャをスティックしたりします。 –

+0

これはクエリを実行するアクティブプロジェクト)1日に何百回も、私はそれから学びたい、それはもっと教育的です;) – Ryan

+0

OKなので、バニング/キャプチャの問題はあなたに影響しませんが、結果の抽出に成功しても、結果ページが変更されます(次回ロードするときに表示される可能性があります)。ダウンロードしたHTMLファイルを見て、必要なビット(タイトルとURL)を探し、これらを抽出する正規表現を書くことができるかどうかを確認する必要があります。これはGoogleのクラウンの宝石であることを覚えておいてください。正確にこの種のものを確実に自動化することができないようにするためにどれくらいの努力を払っていますか。私はあなたに幸運を祈っています:) –

答えて

1

あなたがまだ検索している場合は、あなたが開いているを見つけることができますDOMDocumentDOMXPath

// Temp: 
$sPageHTML = '<html><head></head><body><div class="test">Text here</div></body></html>'; 

$oDomDocument = new DOMDocument (); 
$oDomDocument->loadHTML ($sPageHTML); 

// Now, search the DOM structure for all divs with class "test". 
$oXPath = new DOMXPath ($oDomDocument); 
$results = $oXPath->query ('//div[@class="test"]'); 

// Loop through the results. 
foreach ($results as $result) 
{ 
    echo 'Innertext: ' . $result->nodeValue; 
} 

幸運

+0

ありがとう、それをチェックアウトします! – Ryan

+0

それは役に立ちましたか?... – Scriptman

0

を使用してHTMLの谷検索することができますソースPHP googleスクレイパー: http://scraping.compunect.com/?scrape-google-search(コードの下にスクロール)

DOM解析ルーチンをコピーするだけで、非常にうまく動作します。