找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1857|回复: 0

[特效代码] PHP获取百度相关搜索和原创程度

[复制链接]
发表于 2013-4-14 09:52:07 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
  1. PHP获取百度相关搜索和原创程度
  2. 获取原创程度是get_em_times,数值越高文本长度越长越不原创。
  3. 用于采集项目的搜索引擎优化
  4.    class baidu {
  5.           public static function build_request_uri($words){
  6.                   $words = urlencode(Text::convert_encoding($words,'GBK','UTF-8'));
  7.                   return '/s?wd='.$words;
  8.           }
  9.           public static function get_relate_search($words){
  10.                   $content = self::get_content($words);
  11.                   if(preg_match('/<div id='rs'>(((?!</div>).)*)</div>/', $content,$result)){
  12.                           if(preg_match_all('/<a((?!>).)*>(.*?)</a>/', $result[1], $result)) return $result[2];
  13.                   }
  14.                   return FALSE;
  15.           }
  16.           /**
  17.            * 根据空格分词,获取百度关键词完全匹配<em></em>的次数
  18.            * @param string $words
  19.            * @return int
  20.           */
  21.           public static function get_em_times($words){
  22.                   $word = explode(' ', $words);
  23.                   $content = self::get_content($words);
  24.                   preg_match_all('/<em>(((?!</em>).)*)</em>/', $content,$result);
  25.                   if(!isset($result[1]) || count($result[1])==0)
  26.                           return 0;
  27.                   $word_table = array_count_values($result[1]);
  28.                   $times = 0;
  29.                   foreach ($word as $pice){
  30.                           if(array_key_exists($pice, $word_table)) $times+=$word_table[$pice];
  31.                   }
  32.                   return $times;
  33.           }
  34.           public static function get_content($words){
  35.                   static $loaded_contents = array();
  36.                   if(!isset($loaded_contents[$words])){
  37.                           $content = file_get_contents('http://www.baidu.com'.self::build_request_uri($words));
  38.                           $content = Text::convert_encoding($content,'UTF-8','GBK');
  39.                           $loaded_contents[$words] = $content;
  40.                   }
  41.                   return $loaded_contents[$words];
  42.           }
  43.           function check_veriy($content){
  44.                   if(strpos($content,'http://verify.baidu.com/')!==FALSE){
  45.                           //百度要求验证,异常
  46.                   }
  47.           }
  48. }
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-23 02:40 , Processed in 0.040845 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表