手把手教你做关键词匹配项目(搜索引擎)---- 第六天

第六天

小帅帅周五休息后,精神估计太旺盛了,周末两天就狂欢去了,酒喝高了,把一件重要的事儿给忘记了。

周一重新整装 刺骨上战场.

一来公司,小帅帅终于记得他要做的事情,就迫不及待的整理会议报告(工作总结)。

1.上周工作任务:

      1) 页面提交关键词到关键词词库

      2) 文件导入到关键词词库

      3) 自动抓取关键此到关键词词库

2.能力的提升

      1) 学会了如何读csv文件

      2)  学会了curl

      3)  学会了Html Dom parse

3.下周工作任务:

      1) 了解下关键词词库的应用

刚写到这儿,会议的警钟就来了,小帅帅揣着这会议报告纸条匆匆忙忙赶到会议室。

经过3小时的口舌混战,会议终于结束了。

小帅帅被迫扣上了以下任务,谁叫小帅帅没把计划安排好呢。

1. 学习下淘宝的API的用法,根据淘宝API获取宝贝的信息。

2. 跟据宝贝的属性匹配适合的关键词。

3. 继续跟进后续的扩充关键词词库任务,并且整理归类下。

会议后,于老大私下在抽烟的时候找到了小帅帅,于老大向小帅帅了解情况,说到:你上周的任务做的很棒,你如果能够对这些任务归纳下、总结下,用一份大家都看得懂的图来描述下就非常完美了。

小帅帅听到很激动:图...呃....流程图?

于老大耐心的说到:除了流程图之外,还有很多图,比如:数据流图、UML图... ( 说到这些,于老大就停不下来了,小帅帅蒙了 )

烟灭了,小帅帅再也坚持不了了,于是打断了于老大的夸夸奇谈,说: 呃...于老大, 这份总结你建议用什么图表示比较好呢?

于老大不得不停下夸夸奇谈,特意咳嗽一下,来打破尴尬,拍着小帅帅的肩膀,深情的说到:小帅帅,你先去了解下数据流图、UML图,其实用什么图无所谓,只要能够把你的思想传达出来就行了...

小帅帅瞪时口塞,像塞了个鸡蛋塞在嘴里。心里又默默的鄙视了于老大。

 

数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法  [来自百度词条]

UML图:UML(Unified Modeling Language的缩写)统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。 [来自百度词条]

 

当小帅帅去整理这份图的时候,于老大其实已经在他的本子上已经把这些图已经画下来了。其实他是想让小帅帅去接触下软件设计的知识。

 

小帅帅的想法就不一致,一听到有新的技术知识,他就迫不及待去接触,去学习。

就这样小帅帅终于把数据流图,和UML图的概念看了一遍又一遍,估计能够背出来了,但还是无法画出这样的图。

当小帅帅垂头丧气去找于老大的时候,于老大把整理后的图和代码给他看了之后,觉得受到打击了,原来这就是差距...

于老大的原稿:

 

<?php
class Keyword {

    public $word;

    public static $conn = null;

    public function getDbConn(){
        if(self::$conn == null){
            self::$conn = mysql_connect(DATABASE_HOST,DATABASE_USER,DATABASE__PASSWORD);
            mysql_query("SET NAMES '".DATABASE_CHARSET."'",self::$conn);
            mysql_select_db("dict",self::$conn);
            return self::$conn;
        }
        return self::$conn;
    }


    public function save(){

        $sql = "insert into keywords(word) values ('$this->word')";
          return mysql_query($sql,$this->getDbConn());     
    }

}

class Source {

    public $keywords;

    public function run() {

        foreach ($this->keywords as $word) {
            # code...
            $keyword = new Keyword();
            $keyword->word = $word;
            $keyword->save();
        }
    }

}

class InputSource extends Source {

    public function __construct(){
        $this->keywords = $_REQUEST["keywords"];
    }

}

class FileSource extends Source {

    public function __construct($filename){
        $file = fopen($filename,'r'); 
        while ($data = fgetcsv($file)) {
                $this->keywords[] = $data;
         }
        fclose($file);        
    }
}

class TaobaoHotsSource extends Source
{
    
    public function __construct()
    {
        # code...
        $curl = new ExtendedCurl();
        $content = $curl->get("http://www.taobao.com");
        if($curl->hasError()){
            throw new Exception($curl->getError(), $curl->getHttpCode());    
        }

        $html = str_get_html($content);
        foreach($html->find(".search-hots a[class!=more]") as $ele){
            $this->keywords[] = $ele->innertext;
        }

    }
}

小帅帅只好拿着那木剑去打怪升级,这个boss级别太高,小帅帅抗不起。

小帅帅的啊Q精神还是挺好的,他坚信总有一天,自己会成为Boss级别的,让其它刚出茅庐的来挑战他。

posted @ 2014-08-08 10:16  oShine.Q  阅读(2102)  评论(10编辑  收藏  举报