百度熊掌号独家php自动提交程序,杰奇小说程序熊掌普通与快速收录提交程序,附带神马自动推送

    技术2024-11-21  20

    首先,在根目录,也就是wwwroot文件夹下面,创建bd.php

    <?php class bd_pull_url{ /**用于百度自动提交url */ public $_17mb_prev = ''; public $db = ''; public $path = ''; public $bdapi = ''; public $cache = 'bd_cache';//缓存文件名称 public $day_num = '20';//需要清理的天数-之前的第几天需要清理 public $type =2;//决定是选择页面提交还是目录提交,1为页面,2为目录,3为全部 private $t1 = 4; private $fun_num = 1; function bd_pull_url_get($arr){     $db = $this->db;     $_17mb_prev = $this->_17mb_prev;     $https = $_SERVER['HTTP_HOST'];         //清理20天之前的数据     $date = date('Ymd',strtotime('-'.$this->day_num.' day'));     include $this->path.$this->cache.'.php';

        $day_id = $bd_url_get[$date]['bd_day_id'][$https];     if($day_id['bd_aid']>0)$bd_url_get[$https]['bd_aid'] = array_slice($bd_url_get[$https]['bd_aid'],$day_id['bd_aid']);     if($day_id['bd_lid']>0)$bd_url_get[$https]['bd_lid'] = array_slice($bd_url_get[$https]['bd_lid'],$day_id['bd_lid']);     unset($bd_url_get[$date]);

        file_put_contents($this->path.$this->cache.'.php','<?php $bd_url_get =('.var_export($bd_url_get,true).'); ?>');

            //合并首页小说数据     $sort = array_merge($arr['sort'][0],$arr['sort'][1],$arr['sort'][2],$arr['sort'][3]);

            $this->bd_url_get = $bd_url_get;         $de = date('Ymd');         $ok_num = $bd_url_get[$de]['bd_ok_num'][$https];         if($ok_num<=0){             $this->t1 = $this->type;             $this->type = 4;             $r = $this->set_bd_pull_dir_page();//测试推送条数             $this->type = $this->t1;         }         //推送首页         //$r = $this->set_bd_pull_dir_page($sort);//执行首页推送

            $bd_url_get = $this->bd_url_get;         $ok_num = $bd_url_get[$de]['bd_ok_num'][$https];         //推送最近更新         if($ok_num>0){             $ok_num = $ok_num>2000?1999:$ok_num;             $sql_postdate = "select articleid,articlename,author,intro,sortid,imgflag from ".$_17mb_prev."article_article where articleid NOT IN('".join("','",$bd_aid)."') order by lastupdate desc limit 0,".$ok_num;             $lastupdate = $db->get_results($sql_postdate);//执行最新入库推送                          $r = $this->set_bd_pull_dir_page($lastupdate);//执行最近更新推送,最后一个推送需要添加一个参数1         }                      //执行最新入库推送-开始         $bd_url_get = $this->bd_url_get;         $bd_aid = $bd_url_get[$https]['bd_aid'];         $ok_num = $bd_url_get[$de]['bd_ok_num'][$https];         //最新入库         if($ok_num>0){             $ok_num = $ok_num>2000?1999:$ok_num;             $sql_postdate = "select articleid,articlename,author,intro,sortid,imgflag from ".$_17mb_prev."article_article where articleid NOT IN('".join("','",$bd_aid)."') order by postdate desc limit 0,".$ok_num;             $postdate = $db->get_results($sql_postdate);//执行最新入库推送             $r = $this->set_bd_pull_dir_page($postdate,1);//执行最新入库推送-结束

                $bd_url_get = $this->bd_url_get;             $ok_num = $bd_url_get[$de]['bd_ok_num'][$https];             $this->fun_num++;             if($ok_num>0 && $this->fun_num<=3)$this->bd_pull_url_get($arr);         }              } /**执行推送, *    规则:先推送首页的数据,然后是最新入库,最后是最近更新 *    2.推送过的目录不能在推,推送过的详情不可以再推,每本小说推送最新的章节, *    3.按照比例对可以推送的条数进行分配,每个权重30%,但是首页推送优先,当首页使用的条数剩余的情况下推送剩余的俩种 * */ function set_bd_pull_dir_page($arr='',$flag=''){     $db = $this->db;     $_17mb_prev = $this->_17mb_prev;     include $this->path.$this->cache.'.php';     $ok_num = 10;     $date = date('Ymd');     $https = $_SERVER['HTTP_HOST'];     $bd_url_get_date  = $bd_url_get[$date];         if(isset($bd_url_get_date['bd_num'][$https]))$num = $bd_url_get_date['bd_num'][$https];//可以推送的总数         if(isset($bd_url_get_date['bd_ok_num'][$https]))$ok_num = $bd_url_get_date['bd_ok_num'][$https];         //当天剩余可以推送的总数         //if($ok_num<=0){//没有个数了就不推了         //    return false;         //}         $main = $url_alls2 = array();$url_alls = array();

            //用于提交域名-开始         if($this->type==4 || $this->type==3){             $date20 = date('Ymd',strtotime('-'.$this->day_num.' day'));             if($bd_url_get['https'][$https]<=$date20 || empty($bd_url_get['https'][$https]) || $this->type==4){                 $main =  $url_alls = array('https://'.$https);                 $bd_url_get['https'][$https] = $date;                 $ok_num -=1;             }         }         //以上为提交主域名-结束

            if(!empty($arr)){                 if($ok_num>0 ){                 //获取推送的比例                     if($num < 10)$num = 10;                     $bd_num = intval($num/2);                 if($flag==1){//最后一个数据的时候,获得所有条数                     $bd_num = $ok_num;                 }                 $aid = array();                 //获取小说的id                 for($i=0;$i<count($arr);$i++){                     $aid[] = $arr[$i]->articleid;                 }                 //推送目录-开始                 if($this->type==2 || $this->type==3){                     if($bd_num>=$ok_num){                         $bd_num = $ok_num;                         $ok_num=0;                     }else{                         $ok_num -= $bd_num;                     }                     // 获取可以推送的目录                     $bd_aid_k = array_slice(array_diff((array)$aid,(array)$bd_url_get[$https]['bd_aid']),0,$bd_num);//获取未添加过的目录,                     $url_alls2 = $this->get_bd_url_dir($bd_aid_k);//生成推送url                                          $url_alls = array_merge($url_alls,(array)$url_alls2);                 }                 //推送目录-结束                          //推送详情开始                 if(($this->type==1 || $this->type==3)){                     if($bd_num>=$ok_num){                         $bd_num = $ok_num;                         $ok_num=0;                     }else{                         $ok_num -= $bd_num;                     }                     //获取详细的页面                     $sql = "select lastchapterid,articleid from ".$_17mb_prev."article_article where articleid IN(".join(',',$aid).")";                     $article = $db->get_results($sql);                     $lid =array();                     //获取详细页id                      for($s=0;$s<count($article);$s++){                         $lid[$article[$s]->articleid] = $article[$s]->lastchapterid;                     }                     $bd_lid_diff = array_diff((array)$lid,(array)$bd_url_get[$https]['bd_lid']);//获取数据                     $bd_lid_v = array_slice($bd_lid_diff,0,$bd_num);//获取值                     $bd_lid_k = array_slice(array_keys($bd_lid_diff),0,$bd_num);//获取键                     $url_lid = $this->get_bd_url_dir($bd_lid_k,$bd_lid_v);//详情页路径                         $url_alls = array_merge($url_alls,$url_lid);                 }             }         }

        $rou = $this->bd_pull_url_option($url_alls); if(!$rou){     echo 'error'.'<br/>'.'<br/>';     }else{     echo 'success:'.$rou['success'].'<br/>';             echo 'remain:'.$rou['remain'].'<br/>'.'<br/>'; }             

        if($rou){             $sunm = $rou['success'];//成功提交的数据个数             $bd_url_get_date['bd_ok_num'][$https] = $rou['remain'];//获取剩余的可以提交的条数             $total = $rou['remain']+$sunm+1;//可以使用的总条数             if($total>$bd_url_get_date['bd_num'][$https])$bd_url_get_date['bd_num'][$https] = $total;                          //提交目录的部分开始             if($this->type==2 || $this->type==3){                                  if($sunm>0){//成功提交的实际url,目录                     if($main)$bd_aid_k =array_merge($main,$bd_aid_k);                     $anum = count((array)$bd_aid_k);                     if($sunm>=$anum){                         $sunm -=$anum;                     }else{                         $sunm = 0;                         $bd_aid_k = array_slice($bd_aid_k,0,$sunm-1);                     }                     $bd_url_get[$https]['bd_aid'] = array_merge((array)$bd_url_get[$https]['bd_aid'],(array)$bd_aid_k);                 }                 $bd_aid = $bd_url_get[$https]['bd_aid'];                 end($bd_aid);                 $bd_url_get_date['bd_day_id'][$https]['bd_aid'] = key($bd_aid);//当天的最后一个id                              }//结束

                //开始提交详情             if($this->type==1 || $this->type==3){                 $lnum = count((array)$bd_lid_v);                 echo '<pre>';                 if($sunm>0 ){//实际提交成功的url详情                     if($sunm>=$lnum){                         $sunm -=$lnum;                     }else{                         $sunm = 0;                         $bd_lid_v = array_slice($bd_lid_v,0,$sunm-1);                     }                                          $bd_url_get[$https]['bd_lid'] = array_merge((array)$bd_url_get[$https]['bd_lid'],(array)$bd_lid_v);                 }                 $bd_lid = $bd_url_get[$https]['bd_lid'];                 end($bd_lid);                 $bd_url_get_date['bd_day_id'][$https]['bd_lid'] = key($bd_lid);//当天的最后一个id

                }             //提交详情成功-结束                          $bd_url_get[$date] = $bd_url_get_date;             $this->bd_url_get = $bd_url_get;             file_put_contents($this->path.$this->cache.'.php','<?php $bd_url_get =('.var_export($bd_url_get,true).'); ?>');             return $rou;         }else{             return false;         }     }     function get_pag_(){

        } //获得url路径     function get_bd_url_dir($key,$val=array()){         $arr1 = array();         for($i=0;$i<count($key);$i++){             $arr1[$i] = 'https://'.$_SERVER['HTTP_HOST'].'/'.intval($key[$i]/1000).'/'.$key[$i].'/';             if(count($val)>0){                 $arr1[$i] .= $val[$i].'.html';             }         }         return $arr1;     } //推送url到百度     function bd_pull_url_option($arr){         $urls = $arr;         file_put_contents($this->path.'bd_log.txt',date('Y-m-d').':'.$_SERVER['HTTP_HOST'].':'.var_export($urls,true).PHP_EOL,FILE_APPEND);         $api = $this->bdapi;         $ch = curl_init();         $options =  array(             CURLOPT_URL => $api,             CURLOPT_POST => true,             CURLOPT_RETURNTRANSFER => true,             CURLOPT_POSTFIELDS => implode("\n", $urls),             CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),             );         curl_setopt_array($ch, $options);         $result = curl_exec($ch);                  var_dump($result);         //$result = '{"remain":10,"success":2,"success_realtime":0,"remain_realtime":0}';         $result = json_decode($result,true);

            if(isset($result['error'])){             return false;         }         return $result;     } } ?>

    然后到站点wap文件夹下面创建提交程序budusu.php

    <?php require 'main.php'; require '17mb/class/sql.php'; require($_17mb_pcdir."/configs/article/sort.php"); require '../../up_data/bd.php';

    $sort1 = $db->get_results($sql_sort1);

    $sort2 = $db->get_results($sql_sort2);

    $sort3 = $db->get_results($sql_sort3);

    $sort4 = $db->get_results($sql_sort4);

    $lastupdate = $db->get_results($sql_lastupdate);

     $bd_pull =  new bd_pull_url();  $bd_pull->_17mb_prev = $_17mb_prev;

     $bd_pull->bdapi = 'http://data.zz.baidu.com/urls?site=https://m.budusu.com&token=AzRTa68xBMrPDllQ&type=daily';//设置百度推送的appid设置  $bd_pull->day_num = '20';//需要清理的天数-之前的第几天需要清理  $bd_pull->type =2;//决定是选择页面提交还是目录提交,1为页面,2为目录,3为全部

     $bd_pull->db = $db;  $bd_pull->path = '../../up_data/';  $bd_pull->bd_pull_url_get(array('sort' => array($sort1,$sort2,$sort3,$sort4),'lastupdate'=>$lastupdate));  $bd_pull->bdapi = 'http://data.zz.baidu.com/urls?site=https://m.budusu.com&token=AzRTa68xBMrPDllQ';//设置百度推送的appid设置  $bd_pull->bd_pull_url_get(array('sort' => array($sort1,$sort2,$sort3,$sort4),'lastupdate'=>$lastupdate));

    //神马推送的appid设置 require '../../up_data/smbd.php';

    $bd_pull =  new sm_bd_pull_url(); $bd_pull->_17mb_prev = $_17mb_prev; $bd_pull->day_num = '20';//需要清理的天数-之前的第几天需要清理 $bd_pull->type =2;//决定是选择页面提交还是目录提交,1为页面,2为目录,3为全部 $bd_pull->db = $db; $bd_pull->path = '../../up_data/'; $bd_pull->bdapi = 'http://data.zhanzhang.sm.cn/push?site=www.budusu.com&user_name=邮件&resource_name=mip_add&token=TI_6a773c3546873dsfs516as7cb33e8835ccc'; $bd_pull->bd_pull_url_get();

    $tpl->display('index.html'); ?>

    php推送示例

    $urls = array( 'http://www.example.com/1.html', 'http://www.example.com/2.html', ); $api = 'http://data.zz.baidu.com/urls?site=https://www.budusu.com&token=AzRTa68xBMrPDllQ'; $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo $result;

    post推送示例

    POST /urls?site=https://www.budusu.com&token=AzRTa68xBMrPDllQHTTP/1.1 User-Agent: curl/7.12.1 Host: data.zz.baidu.com Content-Type: text/plain Content-Length: 83

    http://www.budusu.com/1.html http://www.budusu.com/2.html 成功返回示例: { "remain":99998, "success":2, "not_same_site":[], "not_valid":[] }

    curl推送示例

    curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://www.budusu.com&token=AzRTa68xBMrPDllQ"

    本文由一曲书斋提供:budusu.com

    最后:如果快速收录没有资格,那么先开通一个普通收录。

    使用说明

    1、普通收录工具可以向百度搜索主动推送资源,缩短爬虫发现网站链接的时间,不保证收录效果。2、API提交和手动提交共享配额,每日至多提交10万条有价值的内容,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准,提交内容会进入百度搜索统一管理。3、仅限提交关联过主体的站点下的内容,否则无法成功提交,配额不可累计,当日有效。4、若链接存在跳转关系,请直接提交跳转后链接。如网站换域名,需提交新域名资源;进行HTTPS改造页面,请提交HTTPS资源。

    注意:

    有两个推送的地址,第一个是快速收录,第二个是普通收录,设置完成之后,手动访问budusu.php即可完成提交。每天设置定点执行就可以。

    Processed: 0.028, SQL: 9