1

我有一个小脚本可以从谷歌获取关键字位置:

if($_POST) {
//print('post');
    // Clean the post data and make usable
    $domain = filter_var($_POST['domain'], FILTER_SANITIZE_STRING);
    $keywords = filter_var($_POST['keywords'], FILTER_SANITIZE_STRING);
        // Remove begining http and trailing /
        $domain = substr($domain, 0, 7) == 'http://' ? substr($domain, 7) : $domain;
        $domain = substr($domain, -1) == '/' ? substr_replace($domain, '', -1) : $domain;
        // Replace spaces with +
        $keywords = strstr($keywords, ' ') ? str_replace(' ', '+', $keywords) : $keywords;
                $keywords = urlencode($keywords);

    // Grab the Google page using the chosen keywords
    $html = new DOMDocument();
    @$html->loadHtmlFile('http://www.google.hu/search?q='.$keywords.'&num=100');
        print('http://www.google.hu/search?q='.$keywords.'&num=100');

    $xpath = new DOMXPath($html);
    // Store the domains to nodes
    $nodes = $xpath->query('//div[1]/cite');

    // Loop through the nodes to look for our domain
    $hit = 2;
    foreach ($nodes as $n){
        // echo '<div style="font-size:0.7em">'.$n->nodeValue.'<br /></div>'; // Show all links
        if (strstr($n->nodeValue, $domain)) {
            $message = $i; $hit = 1;
        }
        else { ++$i; }
    }
}

它几乎工作得很好。使用某些关键字它只是不工作,但使用其他关键字它工作得很好。例如:

  • 关键词:ingyen társkereső
  • 领域:http://ingyen-tarskereso.hu

这是查询网址:http://www.google.hu/search?q=ingyen%2Btarskereso&num=100

它不起作用。但是使用关键字ingyenes fájlmegosztás和域boxy.tigyisolutions.hu,它可以工作。

你知道有什么问题吗?

也许 num100 不起作用?

4

1 回答 1

1

解决方案非常简单:

只有查询网址:

 http://www.google.com/search?as_q='.$keywords.'&hl=en&client=firefox-a&channel=s&rls=org.mozilla%3Aen-US%3Aofficial&num=100&start=$start&btnG=Google+Search&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=&as_rights=&safe=images      
于 2013-04-28T22:41:21.677 回答