wordpress检测百度是否收录代码失效的原因

2021-02-04
330次阅读
没有评论

今天闲来无事,打算优化一下我网站对于抓取百度搜索页面的代码进行优化,使其判断的更加精准。

做到一半,发现不是代码的问题,而是百度开启的中间抓取源的二次验证,我看了一下,百度采用的是旋转图片式的验证方式,以我目前的技术还是无法做到自动验证或者绕过的。

说到绕过,(我的想法是添加一个header头,在php代码执行抓取任务的时候发送这个头,让对方认为是浏览器人工执行的搜索,从而不用进行验证。但是仔细想想,百度肯定能筛查我的请求,从而判断是机器执行还是真实用户点击。。。鉴于此,我还是不浪费时间进行实践了。)

目前抓取到页面内容的问题出在下面这个验证中:

wordpress检测百度是否收录代码失效的原因

我目前的技术储备还真没办法搞定它。

手动验证之后,才正确展示出来我需要的内容:

wordpress检测百度是否收录代码失效的原因

源代码的运行逻辑很简单,就是在百度搜索中输入网址进行查询,之后用php内置方法进行筛查,没有触发特定的内容则代码这个网页百度已经收录了,所以就直接在页面输出“已收录”的信息即可。

问题就出在机器抓取触发了百度的验证,不验证不返回信息。

等我无聊的时候我想我也会实践一下我上面这个猜想的可行性。。。

 

*****************************

一直有问题,一直过不去。测试了很久一直都是需要验证,有的时候刷新能直接显示我要的页面,但是再次刷新又需要验证了。

哎,搞得很头疼。

贴上半截的代码:

//百度收录展示
function baidu_check($url){
    // global $wpdb;
    // $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
    // $baidu_record  = get_post_meta($post_id,'baidu_record',true);
    // if( $baidu_record != 1){
        $ff123='http://www.baidu.com/s?wd='.$url;
        $curl=curl_init();
        $header  = array(
          'User-Agent:'.'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
          'Content-Type:'.'application/x-www-form-urlencoded; charset=UTF-8',
          'Cookie:'.'PSTM=1610803928; BAIDUID=522DFSAFDFS654SA6BCD172F11:FG=1; BIDUPSID=23125d4sSFFS646973C7883085D46; BD_UPN=12314753; __yjs_duid=1_1c954f6ds4f6w8a683d4e70a74305401610876810213; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID_BFESS=pYCOJexroG3VBR56a4dq94qvV3TDYLtOwXPsp3LGJLVJeC6EG0Pts1-dEu-EHtdogKK0gOTH6KF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tR3aQ5rtKRTffjrnhPF3KhFdXP6-hnjy3b7p5f_K54TZh-oNQh_BQTDUypjpJh3RymJJ2-39LPO2hpRjyxv45as4d64q65aHl51fbbvbURvD--g3-AqBM5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIE3-oJqC_bMILm3f; H_PS_PSSID=33423_33438_33272_31660_33320_33544; delPer=0; BD_CK_SAM=1; PSINO=6; BD_HOME=1; BAIDUID_BFESS=528as4dq4z1fBCD172F11:FG=1; COOKIE_SESSION=192_0_3_3_19_3_0_0_2_2_0_1_3386_0_6_0_1612452777_0_1612452771%7C9%2376570_12_1611572491%7C6; ab_sr=1.0.0_NzM4ZDViM2RjZjViMas85d4q64zODg3NDIq854sNGI5YjBjZjk2ZTNlODk5MWNmN2RhZGYwNDQ5NGZlNjM3MTU2ZGRkZTQ4NDM4MGVkM2RlYjc2; kleck=311512e45e543a8s4d98q169842d40885e5; BA_HECTOR=a52l2k8g0kaga125di1g1o7qt0r; H_PS_645EC=6d1aVqcNZtt6x%q8744faaqUhmCLbSMmEJeNc8Ps%2FxzXW5kn8'
      );
        curl_setopt($curl,CURLOPT_URL,$ff123);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
        $rs=curl_exec($curl);
        curl_close($curl);
        //就一直死在这一步。
        print($rs);
        $isMatched = preg_match_all('/[没有找到]+/i', $str, $matches);
    //     if(!strpos($rs,'没有找到')){
    //         if( $baidu_record == 0){
    //             update_post_meta($post_id, 'baidu_record', 1);
    //         } else {
    //             add_post_meta($post_id, 'baidu_record', 1, true);
    //         }    
    //             return 1;
    //     } else {
    //         if( $baidu_record == false){
    //             add_post_meta($post_id, 'baidu_record', 0, true);
    //         }    
    //         return 0;
    //     }
    // } else {
    //   return 1;
    // }
}
function baidu_record() {
    exit(baidu_check(get_permalink()));
    if(baidu_check(get_permalink()) == 1) {
        echo '<a style="color:green;font-size:12px;float: right;" target="_blank" title="点击查看" rel="external nofollow" href="http://www.baidu.com/s?wd='.get_the_title().'"><i class="fa fa-paw fa-lx"></i>百度已收录</a>';
   } else {
        echo '<a style="color:red;font-size:12px;float: right;" rel="external nofollow" title="点击提交,谢谢您!" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'"><i class="fa fa-paw fa-lx"></i>百度未收录</a>';
   }
}

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2021-02-04发表,共计3119字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码