千帆开发王文才 发表于 2017-10-25 17:46:29

Discuz站点(第三方百度搜索----相关问题解决办法)

本帖最后由 千帆开发王文才 于 2017-10-30 16:24 编辑

安装了百度搜索之后如果搜索不到内容,或者不收录,请按如下方式解决:

1.检查配置。
         论坛后台打开qianfan插件的配置,填写正确的 百度站内搜索id 和 帖子url 匹配。如果不会填写,联系千帆。
2.打开论坛的站内搜索地址,例如:http://zhannei.baidu.com/cse/sea ... 1794910680709&nsid=
   如果显示内容是空的:(注意,此处打开的页面是论坛样式,非网页样式)

请登陆百度站内搜索http://zn.baidu.com/cse/engine/list,-》进入管理后台-》结果页管理-》行业模板数据提交。
---->行业模板数据出现大量错误,校验失败,或者xml文件出现错误等等,可以点击状态 查看原因,并解决问题。(index型文件出现少量的内部文件错误可以忽略)。
---->行业模板数据没有问题,请登录百度站长平台 http://zhanzhang.baidu.com/guide/index 查看抓取异常,抓取频率,查看抓取相关的报错。    如果发现错误,可以根据出现错误的链接响应代码解决问题(可以尝试抓取诊断,论坛不要禁止百度爬虫)。
   

---------------百度收录结果一直为空:
实际上安装插件之后,百度会根据提交的模板 sitemap 抓取站点帖子。如果2-3天内没有数据,就需要反馈百度。反馈之前 需要确认不是由于行业模板数据的问题,或者抓取错误的问题导致的没有收录数据。

---------------百度已收录部分内容,但是新链接没有继续收录:
需要在站长平台 查看抓取频率是否正常,如果抓取频率过小,需要手动提交站点链接,或者使用脚本提交新的链接。如果抓取正常,或者提交链接1-2天后仍没有收录,需要反馈百度,并要说明 已经手动提交了链接,仍不起作用。


百度反馈地址:http://zhanzhang.baidu.com/feedback ,选择pc搜索》网站收录问题,选择对应的情况。反馈要说明清楚问题,比如:

站点已经安装了百度站内搜索插件,行业模板提交正常。论坛样式收录为0,这个请管理员查下原因。另外在站长平台也查过了 没有出现抓取异常等情况。
最好加截图说明,附上站内搜索链接。


附:
百度提交php脚本:建议放在论坛根目录使用。
<?php
//百度搜索手动提交
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
//-------配置信息---------
$setting = array(
      //调试模式,开启后可,查看url是否正确。
      'debug'=>true,
      //discuz core 文件的相对路径
      'coreUrl'=>'./source/class/class_core.php',
      //推送多少时间前到现在的时间段的帖子,单位天,0为当天。
      'time'=>'0',               
      //百度推送的接口地址
      'api'=>'http://data.zz.baidu.com/urls?site=xxxxxx',
      //帖子链接的模板url,此处域名和百度搜索验证的域名保持一致。
      'threadUrl'=>'http://www.xx.com/forum.php?mod=viewthread&tid={ID}',
);

//------------------------
define('API',$setting['api']);
define('DEBUG',$setting['debug']);
define('URL',$setting['threadUrl']);


$tids = getTids($setting);
if(empty($tids) || !is_array($tids)) exit('empty!');
$urls = array();
$start = 0;
foreach($tids as $k => $val){
      if(!$val) continue;
      if( is_int($k/1500) && $k != 0){
                $start ++;
      };
      $urls[$start][] = str_replace('{ID}',$val,URL);
      
}
foreach($urls as $val){
      if(DEBUG){
                $re = $val;
      }else{
                $re = pullData(API,$val);
      }
      print_r(var_export($re,true));
}
function getTids($setting){
      require $setting['coreUrl'];
      C::app()->init();
      $time = strtotime(date('Y-m-d'));
      if($setting['time']){
                $time = $time - (24*3600*intval($setting['time']));
      }
      $table = DB::table('forum_thread');
      $sql = "select tid from $table where displayorder >=0 AND dateline > $time";
      
      $query = DB::query($sql);
      $tids = array();
      while($tid = DB::fetch($query)) {
                $tids[] = intval($tid['tid']);
      }
      
      return $tids;
}

function pullData($api,$urls){
      $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);
      return $result;
}







页: [1]
查看完整版本: Discuz站点(第三方百度搜索----相关问题解决办法)