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

首先,在根目录,也就是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即可完成提交。每天设置定点执行就可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值