马春杰杰 Exit Reader Mode

[mcj]利用PHP测试判断网页是否被百度bing必应Google谷歌收录

想知道网页是不是被百度或者bing收录了,总不能一条一条的查吧?这个时候就需要批量进行查询了。

1 百度

首先新建函数,这个函数用于判断返回结果是否含有未收录信息:

<?php
header("Content-type: text/html; charset=utf-8");
function baidu_check_recond($pageurl){
    $s = '';
    $url='https://www.baidu.com/s?wd='.$pageurl;
    $curl=curl_init();
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $rs=curl_exec($curl);
    curl_close($curl);
    if(strpos($rs,'提交网址') && strpos($rs,'相关结果')){
        return 0; //如果存在提交网址和相关结果字眼,则表明百度未收录,返回false
    } else {
        return 1; //否则返回true
    }
}

然后在后面调用即可:

<?php echo baidu_check_recond('https://www.machunjie.com/deeplearning/203.html');?>

如果已被收录,则会返回1,否则返回0.

2 bing/必应

必应也是同理,函数为:

<?php
header("Content-type: text/html; charset=utf-8");
function baidu_check_recond($pageurl){
    $s = '';
    $url='https://cn.bing.com/search?q='.$pageurl;
    $curl=curl_init();
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $rs=curl_exec($curl);
    curl_close($curl);

    if(strpos($rs,'different') && strpos($rs,'keywords')){
        return 0; //如果存在提交网址和相关结果字眼,则表明百度未收录,返回false
    } else {
        return 1; //否则返回true
    }
}

只是修改了bing的搜索入口,函数名没变。。。

接着调用跟百度是一样的。

3 Google/谷歌

经过测试发现谷歌对爬虫有检测,发现短时间内查询过多的话就会进行警告,并进行人机身份验证。。。目前还没想到其他好方法,如果大家有欢迎告知~~

使用谷歌后会出现:

302 Moved
The document has moved here. 1

点击链接进入后:

关于此网页

我们的系统检测到您的计算机网络中存在异常流量。此网页用于确认这些请求是由您而不是自动程序发出的。为什么会这样?


IP 地址:x.x.x.x
时间:2019-05-28T02:23:05Z
网址:https://www.google.com.hk/search?q=https://www.machunjie.com/deeplearning/203dfd.html