|
本帖最后由 千帆开发王文才 于 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;
}
|
|