程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 手把手教你做關鍵詞匹配項目(搜索引擎)---- 第三天,教你做----

手把手教你做關鍵詞匹配項目(搜索引擎)---- 第三天,教你做----

編輯:關於PHP編程

手把手教你做關鍵詞匹配項目(搜索引擎)---- 第三天,教你做----


第三天

小王(運營總監)看到小丁丁整天都在淘寶、百度、魔方、拍拍上面淘關鍵詞,每天花費的時間好長,工作效率又低,拿著這個借口來找到我。

說到:小帥帥,你看小丁丁每天都在淘寶、百度、魔方、拍拍上面淘關鍵詞花費的時間好長,你能不能幫幫忙,看看能不能讓系統自己做啦,這樣可以節省好多人力,帶來的效益多高。(0 其實就是為了掩飾他們懶惰 0)

小帥帥一聽到可以帶來的效益好高,王總還求著我呢 ,馬上 兩眼冒著星光,是該好好體現, 解決這個問題就可以體現出我的價值。

小帥帥拍著胸膛保證到:王總,這個小KS啦,馬上幫你辦到。 ( 0 程序員就是這麼可愛,樂於挑戰,樂於接受,從不需要高額的回報 0 )

小王拍了拍小帥帥: 好小伙子,好好加油,等你的好消息。

小帥帥從此樂呵了一整天。從沒去想想這是多麼蛋疼的一項任務。

關鍵詞來源示例圖:

當小帥帥醒過來時,才意識到原來這個項目不是一般的蛋疼啊。

小帥帥不知道如何下手,就屁顛屁顛的跑到小於(技術總監)旁邊(0 有技術總監真好,強大的靠山,反正有人背黑鍋 0)。

說到:於老大,剛才王總給了這個任務給我,我不曉得怎麼辦好,能否高抬貴嘴,指導下。

於老大瞄了一眼,說到:你是用php做的吧,php做就復雜點咯,知道curl、html dom解析嗎?

小帥帥,說到:不太懂耶,沒用過,看起來好高深的樣子。

於老大鄙視了一番:這有什麼高深的,很簡單的,百度一下咯。(老大就是老大,什麼事情在他眼裡都是簡單的,好崇拜的對象)

於老大在baidu搜索框裡面輸入 php curl,查出了結果讓小帥帥去了解。

php curl手冊: http://cn2.php.net/manual/zh/book.curl.php

小帥帥查看玩手冊後,隨手寫了一份:

#請求淘寶首頁

$curl = curl_init();
curl_setopt_array($curl,array(
        CURLOPT_FAILONERROR => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_CONNECTTIMEOUT => 15,
        CURLOPT_TIMEOUT => 60,
        //CURLOPT_COOKIESESSION => 1,  
        CURLOPT_URL => "http://www.taobao.com"
));

$result = curl_exec($this->curl);
echo $result;

小帥帥非常高興,因為學到了新的知識。小帥帥又犯愁了,內容是取到了,怎麼取裡面的關鍵詞?

小帥帥又屁顛屁顛的跑到小於(技術總監),去請教。

說道:於老大,curl我已經弄懂了,我取道淘寶的首頁了,下面怎麼辦?

於老大瞄了一眼代碼,很不樂意的說道:恩,寫是寫好了,怎麼看著這麼別扭。

小帥帥心裡就不樂意了,想到我寫的明明這麼好,又簡單使用,怎麼別扭了。

於老大就把以前的代碼翻出來,隨手扔給小帥帥,說到:你先去看懂這份代碼,用這份代碼重新寫一份?

 

文件內容:

/**
 * cURL 常用操作封裝
 *
 * @author oShine
 */
class ExtendedCurl
{
    /**
     * 返回 JSON 內容為對象
     */
    const JSON_OBJECT = 0;

    /**
     * 返回 JSON 內容為數組
     */
    const JSON_ARRAY = 1;

    /**
     * cURL Handle
     *
     * @var resource
     */
    private $curl;

    /**
     * 當前(默認) cURL 參數
     *
     * @var array
     */
    private $options = array(
        CURLOPT_FAILONERROR => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_CONNECTTIMEOUT => 15,
        CURLOPT_TIMEOUT => 60,
        //CURLOPT_COOKIESESSION => 1,        
    );

    /**
     * 最後一次請求的錯誤信息
     *
     * @var null|string
     */
    private $error = null;

    /**
     * @var int
     */
    private $httpCode = null;

    /**
     * @param array $defaultOptions
     * @internal param array $options 可選的覆蓋默認 cURL 參數
     */
    public function __construct(array $defaultOptions = array())
    {
        $this->curl = curl_init();
        if (!empty($defaultOptions)) {
            $this->options = $defaultOptions;
        }
    }

    /**
     * 設置 cURL 多個選項
     *
     * @param array $options
     */
    public function setOptions(array $options)
    {
        foreach ($options as $key => $value) {
            $this->setOption($key, $value);
        }
    }

    /**
     * 設置 cURL 單個選項
     *
     * @param $key
     * @param $value
     */
    public function setOption($key, $value)
    {
        $this->options[$key] = $value;
    }

    /**
     * 發送 GET 請求並返回解析後的 JSON 內容
     *
     * @param $url
     * @param array $data
     * @param int $type
     * @return null|object|array
     */
    public function getJson($url, array $data = array(), $type = self::JSON_ARRAY)
    {
        $content = $this->get($url, $data);
        return json_decode($content, $type);
    }

    /**
     * 發送 GET 請求
     *
     * @param $url
     * @param array $data
     * @return null|string
     */
    public function get($url, array $data = array())
    {
        if (!empty($data)) {
            if (false === strpos($url, '?')) {
                $url .= '?';
            } else {
                $url .= '&';
            }
            $url .= http_build_query($data);
        }
        $options = array(
            CURLOPT_URL => $url,
        );
        return $this->request($options);
    }

    /**
     * 發送 cURL 請求
     *
     * @param array $options
     * @return mixed
     */
    private function request(array $options = array())
    {
        $this->setOptions($options);
        curl_setopt_array($this->curl, $this->options);
        $result = curl_exec($this->curl);
        $errorNo = curl_errno($this->curl);
        $response = curl_getinfo( $this->curl );
        if ($errorNo) {
            $this->error = '[' . $errorNo . '] ' . curl_error($this->curl);
        } else {
            $this->error = null;
        }
        if(isset($response['http_code'])){
            $this->httpCode = $response['http_code'];
        }

        return $result;
    }

    /**
     * 發送 POST 請求並返回解析後的 JSON 內容
     *
     * @param $url
     * @param array $data
     * @param int $type
     * @return null|object|array
     */
    public function postJson($url, array $data = array(), $return = self::JSON_ARRAY)
    {
        $content = $this->post($url, $data);
        return json_decode($content, $return);
    }

    /**
     * 發送 POST 請求
     *
     * @param $url
     * @param array $data
     * @return null|string
     */
    public function post($url, array $data = array())
    {
        $options = array(
            CURLOPT_URL => $url,
            CURLOPT_POST => 1,
        );
        if (!empty($data)) {
            if ($this->isMultiPart($data)) {
                $options[CURLOPT_POSTFIELDS] = $data;
            } else {
                $options[CURLOPT_POSTFIELDS] = http_build_query($data);
            }
        }
        return $this->request($options);
    }

    private function isMultiPart($data)
    {
        foreach ($data as $value) {
            if ('@' == $value[0])
                return true;
        }
        return false;
    }

    /**
     * 判斷最後一次請求是否有錯誤
     *
     * @return bool
     */
    public function hasError()
    {
        return null !== $this->error;
    }

    /**
     * 獲取最後一次請求的錯誤信息
     *
     * @return null|string
     */
    public function getError()
    {
        return $this->error;
    }

    public function getHttpCode()
    {
        return $this->httpCode;
    }
} 

 

小帥帥心裡十分不樂意,心裡恨不得要揍揍於老大,但又不得不屈服他的淫威之下,只得答應說到:好的,我先回去琢磨琢磨一下。

小帥帥 從此郁悶了一天。 拿著天書式的武林秘籍去修煉去了。

 


百度搜索引擎中搜索詞是如與跟推廣關鍵詞匹配的?

現在 百度推廣有精確、短語、廣泛三種匹配方式,,一般來說黃金組合匹配方式是:廣泛匹配+搜索詞報告+否定關鍵詞。流量來說的話就是 廣泛>短語>精確啦,可以根據你們呢的實際情況進行設置!
 

用搜索引擎搜索時,如果有三個關鍵詞,要精確匹配,該怎輸入?

如果要精確匹配,需要ABC都帶引號。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved