KIỂM TRA GOOGLE PAGERANK TRONG ASP.NET

Google Pagerank là một chỉ số quan trọng trong SEO. Nhưng bạn đã biết cách để kiểm tra nó với ASP.NET. Hôm nay mình xin giới thiệu cho các bạn cách để tạo ra một module để check google pagerank. Module chỉ mang tính chất demo nên mình sẽ làm đơn giản.
Bước 1: Giao diện

<div>
            Nhập tên miền: <asp:TextBox ID="txtDomain" runat="server"/>
            <asp:Button ID="btnCheck" runat="server" Text="Check" onclick="btnCheck_Click"
                style="height: 26px" /><br />
            Google Pagerank <asp:Label ID="lbPageRank" runat="server" />
    </div>
Bước 2: Tạo class check Pagerank
Đây là những thuật toán mà google sẽ sử dụng để check pagerank cho bạn.
public class GooglePR
{
    public GooglePR()
    {
    }
    private const UInt32 myConst = 0xE6359A60;
    private static void _Hashing(ref UInt32 a, ref UInt32 b, ref UInt32 c)
    {
        a -= b; a -= c; a ^= c >> 13;
        b -= c; b -= a; b ^= a << 8;
        c -= a; c -= b; c ^= b >> 13;
        a -= b; a -= c; a ^= c >> 12;
        b -= c; b -= a; b ^= a << 16;
        c -= a; c -= b; c ^= b >> 5;
        a -= b; a -= c; a ^= c >> 3;
        b -= c; b -= a; b ^= a << 10;
        c -= a; c -= b; c ^= b >> 15;
    }
    public static string PerfectHash(string theURL)
    {
        string url = string.Format("info:{0}", theURL);
        int length = url.Length;
        UInt32 a, b;
        UInt32 c = myConst;
        int k = 0;
        int len = length;
        a = b = 0x9E3779B9;
        while (len >= 12)
        {
            a += (UInt32)(url[k + 0] + (url[k + 1] << 8) +
                 (url[k + 2] << 16) + (url[k + 3] << 24));
            b += (UInt32)(url[k + 4] + (url[k + 5] << 8) +
                 (url[k + 6] << 16) + (url[k + 7] << 24));
            c += (UInt32)(url[k + 8] + (url[k + 9] << 8) +
                 (url[k + 10] << 16) + (url[k + 11] << 24));
            _Hashing(ref a, ref b, ref c);
            k += 12;
            len -= 12;
        }
        c += (UInt32)length;
        switch (len)
        {
            case 11:
                c += (UInt32)(url[k + 10] << 24);
                goto case 10;
            case 10:
                c += (UInt32)(url[k + 9] << 16);
                goto case 9;
            case 9:
                c += (UInt32)(url[k + 8] << 8);
                goto case 8;
            case 8:
                b += (UInt32)(url[k + 7] << 24);
                goto case 7;
            case 7:
                b += (UInt32)(url[k + 6] << 16);
                goto case 6;
            case 6:
                b += (UInt32)(url[k + 5] << 8);
                goto case 5;
            case 5:
                b += (UInt32)(url[k + 4]);
                goto case 4;
            case 4:
                a += (UInt32)(url[k + 3] << 24);
                goto case 3;
            case 3:
                a += (UInt32)(url[k + 2] << 16);
                goto case 2;
            case 2:
                a += (UInt32)(url[k + 1] << 8);
                goto case 1;
            case 1:
                a += (UInt32)(url[k + 0]);
                break;
            default:
                break;
        }
        _Hashing(ref a, ref b, ref c);
        return string.Format("6{0}", c);
    }
    public int MyPR(string myURL)
    {
        string strDomainHash = PerfectHash(myURL);
        string myRequestURL = string.Format("http://toolbarqueries.google.com/" +
               "tbr?client=navclient-auto&ch={0}&features=Rank&q=info:{1}",
               strDomainHash, myURL);
        try
        {
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(myRequestURL);
            string myResponse = new StreamReader(
                   myRequest.GetResponse().GetResponseStream()).ReadToEnd();
            if (myResponse.Length == 0)
                return 0;
            else
                return int.Parse(Regex.Match(myResponse,
                       "Rank_1:[0-9]:([0-9]+)").Groups[1].Value);
        }
        catch (Exception)
        {
            return -1;
        }
    }
}
 
Bước 3: Sử dụng lớp khai báo trên
protected void btnCheck_Click(object sender, EventArgs e)
    {
        GooglePR pr = new GooglePR();
        string url = txtDomain.Text; ;
        int google_page_rank = pr.MyPR(url);
        lbPageRank.Text ="của "+url+" là : "+ google_page_rank.ToString();
    }
Và đây là kết quả:

pagerank

pagerank

Chúc các bạn thành công!

Không có nhận xét nào: