zoukankan      html  css  js  c++  java
  • 如何用代码挖局长尾关键词

    长尾关键词(Long Tail Keyword)是指网站上的非目标关键词但与目标关键词相关的也可以带来搜索流量的组合型关键词。对于做SEO的人来说,这个名字再也熟悉不过了,但是如何来挖掘长尾关键词,对于没有数据或者一定计算机知识的人来说,还是很有难度的。所以这里附上非常简单的办法,只要几行代码就能轻松搞定。

    # -*- coding: utf-8 -*-
    # flake8: noqa
    __author__ = 'wukong'
    
    import urllib
    from urllib import urlencode
    
    #配置您申请的appKey和openId
    app_key="***"
    open_id="***"
    
    """
    request_url 请求地址
    params 请求参数
    method 请求方法
    
    """
    def request_content(request_url,params,method):
        params = urlencode(params)
        
        if method and method.lower() =="get":
            f = urllib.urlopen("%s?%s" % (request_url, params))
        else:
            f = urllib.urlopen(request_url, params)
     
        content = f.read()
        print content
    
       
    def main():
    
        domain="http://api.xiaocongjisuan.com/"
        servlet="data/longtailword/mining"
        method="get"
        request_url=domain+servlet
        
        #字典
        params ={}
        params["appKey"]=app_key
        params["openId"]=open_id
        
        #变动部分
        params["keyword"]="学前教育"
        params["upLimit"]=50
        params["minLen"]=30
        params["lSort"]="up"
        
        request_content(request_url,params,method)
        
    if __name__ == '__main__':
        main()

    当然也可以用c#来实现

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.IO;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            private static string appKey="yours";
            private static string openId = "yours";
           
            static string getResponseAsString(HttpWebResponse rsp, Encoding encoding)
            {
                System.IO.Stream stream = null;
                StreamReader reader = null;
                try
                {
                    // 以字符流的方式读取HTTP响应
                    stream = rsp.GetResponseStream();
                    reader = new StreamReader(stream, encoding);
                    return reader.ReadToEnd();
                }
                finally
                {
                    // 释放资源
                    if (reader != null) reader.Close();
                    if (stream != null) stream.Close();
                    if (rsp != null) rsp.Close();
                }
            }
    
            /*
             * parameters 参数
             * encode 编码
             */
    
            static string buildQuery(IDictionary<string,object> parameters, string encode)
            {
                StringBuilder postData = new StringBuilder();
                bool hasParam = false;
                IEnumerator<KeyValuePair<string, object>> dem = parameters.GetEnumerator();
                while (dem.MoveNext())
                {
                    string name = dem.Current.Key;
                    string value = dem.Current.Value.ToString(); ;
                    // 忽略参数名或参数值为空的参数
                    if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)
                    {
                        if (hasParam)
                        {
                            postData.Append("&");
                        }
                        postData.Append(name);
                        postData.Append("=");
                        if (encode == "gb2312")
                        {
                            postData.Append(System.Web.HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312")));
                        }
                        else if (encode == "utf8")
                        {
                            postData.Append(System.Web.HttpUtility.UrlEncode(value, Encoding.UTF8));
                        }
                        else
                        {
                            postData.Append(value);
                        }
                        hasParam = true;
                    }
                }
                return postData.ToString();
            }
    
    
            /**
            *
            * @param url 请求地址
            * @param params 请求参数
            * @param method 请求方法
            * @return 请求结果
            * @throws Exception
            */
            static string requestContent(string url, IDictionary<string,object> parameters, string method)
            {
                if (method.ToLower() == "post")
                {
                    HttpWebRequest req = null;
                    HttpWebResponse rsp = null;
                    System.IO.Stream reqStream = null;
                    try
                    {
                        req = (HttpWebRequest)WebRequest.Create(url);
                        req.Method = method;
                        req.KeepAlive = false;
                        req.ProtocolVersion = HttpVersion.Version10;
                        req.Timeout = 5000;
                        req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                        byte[] postData = Encoding.UTF8.GetBytes(buildQuery(parameters, "utf8"));
                        reqStream = req.GetRequestStream();
                        reqStream.Write(postData, 0, postData.Length);
                        rsp = (HttpWebResponse)req.GetResponse();
                        Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
                        return getResponseAsString(rsp, encoding);
                    }
                    catch (Exception ex)
                    {
                        return ex.Message;
                    }
                    finally
                    {
                        if (reqStream != null) reqStream.Close();
                        if (rsp != null) rsp.Close();
                    }
                }
                else
                {
                    //创建请求
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + buildQuery(parameters, "utf8"));
    
                    //GET请求
                    request.Method = "GET";
                    request.ReadWriteTimeout = 5000;
                    request.ContentType = "text/html;charset=UTF-8";
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream myResponseStream = response.GetResponseStream();
                    StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
    
                    //返回内容
                    string retString = myStreamReader.ReadToEnd();
                    return retString;
                }
            }
    
            static void Main(string[] args)
            {
    
                String domain = "http://api.xiaocongjisuan.com/";
                String servlet = "data/longtailword/mining";
                String method = "get";
                String url = domain + servlet;
    
    
                var parameters = new Dictionary<string,object>();
    
                parameters.Add("appKey", appKey);
                parameters.Add("openId", openId);
    
                //变动部分
                parameters.Add("keyword", "学前教育");
                parameters.Add("upLimit", 50);
                parameters.Add("minLen", 30);
                parameters.Add("lSort", "up");
    
                string result = requestContent(url, parameters, method);
                Console.WriteLine(result);
                Console.Read();
    
            }
    
        }
    }

    其他的语言实现方式可以跳转到长尾关键词接口去查看,代码上还是非常简洁的,就也不再做过多解释。

  • 相关阅读:
    lpc4357第一个实验,串口(中断)
    移植UCOS-II时堆栈增长方向的疑问
    ARM Cortex-M4_寄存器介绍(-Part5)
    ARM Cortex-M4内核流水线和总线介绍 (-Part4_)
    从ARM 中的 指令对齐 到 bala bala········
    外部Nor Flash的初始化文件名为Prog_Ext_NOR.ini
    LPC4357,NOR FLAHS 仿真初始化文件Dbg_Ext_NOR.ini
    KEIL、uVision、RealView、MDK、KEIL C51之间的关系纠葛(比较区别)
    nand flash 和 nor flash
    c里面取地址和引用的 区别··········
  • 原文地址:https://www.cnblogs.com/huangxie/p/11641033.html
Copyright © 2011-2022 走看看