【问题标题】:How to check if more site is indexed in Google如何检查是否有更多网站在 Google 中被编入索引
【发布时间】:2016-09-16 01:31:02
【问题描述】:

如果网站已编入索引,我在 google 上找到了一个脚本检查索引

function getPagesIndexedGoogle($site)
{
    if ($site) {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => "https://www.google.com.au/search?q=site:$site&gws_rd=ssl",
            CURLOPT_SSL_VERIFYPEER=> false,
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'
        ));
        $result_string = curl_exec($curl);
        curl_close($curl);
        if (strpos($result_string, "did not match any documents") !== false) {
            return 0;
        } else {
            $match = preg_match("/about ([0-9,]{0,12})/i", $result_string, $matches);

            echo $matches[1];
        }
    }
}

if($_POST['domain']){
    $site = $_POST['domain'];
}
echo  $_POST['domain'] ;
echo getPagesIndexedGoogle($site);    

?>

如何查看多个url?

我使用过 Foreach,但它不起作用。请帮帮我。

【问题讨论】:

  • $sites = array("site1","site2","site3"); foreach($sites as $site){ echo getPagesIndexedGoogle($site); } - 当然用真实网站替换数组值。
  • goggle 主动检测刮板,预计会很快被阻止。
  • 谢谢。我正在使用表单让获取数据。
    域:
  • 你能告诉我代码让我们得到数组吗?
  • 这需要更多的工作。您需要拆分网站,检查有效输入等。如何输入网站?每个网站是换行还是每个网站之间是否有空格字符?总而言之,你是在自找麻烦。您无法控制用户进入网站的方式。

标签: php indexed


【解决方案1】:

根据要求,这应该可以解决问题:

<?php

function getPagesIndexedGoogle($site)
{
    if ($site) {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => "https://www.google.com.au/search?q=site:$site&amp;gws_rd=ssl",
            CURLOPT_SSL_VERIFYPEER=> false,
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'
        ));
        $result_string = curl_exec($curl);
        curl_close($curl);
        if (strpos($result_string, "did not match any documents") !== false) {
            return 0;
        } else {
            $match = preg_match("/about ([0-9,]{0,12})/i", $result_string, $matches);

            echo $matches[1];
        }
    }
}

if(!empty($_POST['domain'])){

    // Tries to split URLs by new line or space character
    $sites = preg_split('#\\r\\n|\\r|\\n| #i', $_POST['domain']);

    foreach($sites as $site){
        // Checks if the URL is a valid website or not (http(s):// must be included!)
        if(preg_match('#((https?|ftp):\/\/(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i', $site)){
            echo $site;
            echo getPagesIndexedGoogle($site);
        } else {
            echo $site;
            echo " is not a valid url.";
        }
    }

} else {
    echo "No websites were entered.";
}

?>

我仍然建议您不要使用文本区域,而是使用简单的文本字段。它只是不太容易出错。

【讨论】:

  • 亲爱的icecub,我使用了你的代码但显示错误:意外'{'。我找到了行 if(preg_match 但看起来没有错误。请帮助我
  • @Steven 这是一个简单的错误。解决它。上面的代码现在应该可以工作了。
  • @Steven 如果我的回答对您有所帮助,请将其标记为已回答。这是一种向帮助您的人表达您的感激之情的方式,它还将确保您的问题不会永远得不到解答。
  • 是的,我做到了。再次感谢
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多