如何判断百度知道的问题是否还存在?
背景:最近公司在做百度知道的推广,但是百度推送过来问题之后,可能当天或者隔天就会把问题删除,这样在我们回答问题的时候,百度返回的信息是问题已经不存在,这浪费了我们编辑不少的时间,因此做了一个在回答问题之前,首先判断问题是否存在的接口,这样才能避免问题答复的浪费。
需要做的工作包括:
1. 做好一个PHP接口,用于判断百度的知道问题还是否存在,判断的依据,就是百度知道的唯一问题id,一般百度知道的问题展示形式是:
http://zhidao.baidu.com/question/1047344235728537699.html
其中红色部分就是问题id,判断的方法就是看这个网页的标题,是否包含特定的关键字,具体关键字很好确定,你懂的。
具体的PHP代码如下,可以把如下代码另存为文件,比如ifbaiduexist.php:
<?php
$bdid=$_GET['baiduid'];
/*20150128添加判断百度问题是否被删除函数*/
/*在用*/
function file_title_exists($id) {
$url='http://zhidao.baidu.com/question/'.$id.'.html';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
preg_match('/<title>(.*)<\/title>/i', $lines_string, $title);
$strtitle = implode($title);
//echo $strtitle;
$strpos="信息提示";
if( strpos($strtitle,$strpos)>0 )
{
echo "document.write('not exist')";
}
else
{
echo "document.write('exist')";
}
}
file_title_exists($bdid);
2. 把PHP代码封装进行JS代码的封装,方便HTML的调用;
<script type="text/javascript" src="{SITE_URL}kbjia/ifbaiduexist.php?baiduid={$question['question_id']}"> </script>
3. 在Tipask端调用该接口,把返回的是否存在信息输出到问题页。
<h1>{$question['title']}(知道id:{$question['question_id']}-<script type="text/javascript" src="{SITE_URL}kbjia/ifbaiduexist.php?baiduid={$question['question_id']}"> </script>)</h1>
这样就完成了整个过程的制作,具体效果如下图所示:
收工!
参考:jb51