想知道网页是不是被百度或者bing收录了,总不能一条一条的查吧?这个时候就需要批量进行查询了。
1 百度
首先新建函数,这个函数用于判断返回结果是否含有未收录信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?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 } } |
然后在后面调用即可:
1 |
<?php echo baidu_check_recond('https://www.machunjie.com/deeplearning/203.html');?> |
如果已被收录,则会返回1,否则返回0.
2 bing/必应
必应也是同理,函数为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?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/谷歌
经过测试发现谷歌对爬虫有检测,发现短时间内查询过多的话就会进行警告,并进行人机身份验证。。。目前还没想到其他好方法,如果大家有欢迎告知~~
使用谷歌后会出现:
1 2 |
302 Moved The document has moved here. 1 |
点击链接进入后:
1 2 3 4 5 6 7 8 |
关于此网页 我们的系统检测到您的计算机网络中存在异常流量。此网页用于确认这些请求是由您而不是自动程序发出的。为什么会这样? IP 地址:x.x.x.x 时间:2019-05-28T02:23:05Z 网址:https://www.google.com.hk/search?q=https://www.machunjie.com/deeplearning/203dfd.html |