[C#] Find Position Keywords in Google Search (Tìm thứ hạng từ khóa trên google) lap trinh csharp
Hôm nay, mình xin chia sẽ cho các bạn cách làm thế nào để tìm thứ hạng của từ khóa chính mình cần SEO trên bộ máy tìm kiếm của Google bằng ngôn ngữ lập trình Csharp . Dựa vào đó, mình có thể xây dựng và tạo nhật ký, để có chiến lược SEO tốt cho từ khóa ...
Hôm nay, mình xin chia sẽ cho các bạn cách làm thế nào để tìm thứ hạng của từ khóa chính mình cần SEO trên bộ máy tìm kiếm của Google bằng ngôn ngữ lập trình Csharp.
Dựa vào đó, mình có thể xây dựng và tạo nhật ký, để có chiến lược SEO tốt cho từ khóa mình lên hạng.
Keyword là gì?
Keywords có nghĩa là từ khóa hay cụm từ khóa, là những ký tự mà dựa trên những truy vấn của người dùng mà các webmaster làm căn cứ để lên kế hoạch cho chiến dịch tối ưu hóa website với mục đích tiếp cận khách hàng càng nhiều càng tốt.
Thuật Ngữ KEYWORD
Với mỗi chiến dịch lập hệ thống Keywords khác nhau thì mức độ thành công của các webmaster khác nhau. Một chiến dịch tạo dựng hệ thống Keywords thành công được đánh giá bởi thứ hạng của website đó trên bảng xếp hạng các kết quả tìm kiếm và điều mấu chốt ở đây là tỷ lệ chuyển đổi từ khách thăm website thành khách hàng.
+ Bây giờ, mình xin hướng dẫn các bạn cách làm thế nào để lấy được từ khóa của google.
Đầu tiên, các bạn có thể tham khảo dường dẫn Url sau:
https://google.com.vn/search?num=100&q={0}&btnG=Search
Trong đó, num =100 là số trang mà bạn muốn tìm kiếm để hiển thị. Ví dụ: mình muốn biết từ khóa mình SEO có đang nằm trong top thứ 100 tìm kiếm của bộ máy google hay không?
Thường thì, một trang tìm kiếm của google search sẽ hiển thị 10 kết quả tìm kiếm.
+ Khi các bạn truy vấn kết quả tìm kiếm trả về, bạn sẽ cắt element có chứa class "<h3 class='r'>" sau đó, mình sẽ đưa vào Mảng hoặc List để xử lý.
Sau đó, mình foreach kết từ từ vị trí số 1 cho đến 100, khi kết quả nào trả về có chứa đường dẫn Url của mình, ví dụ trang http://laptrinhvb.net thì mình trả về vị trí, cùng đường dẫn chứa từ khóa tại position đó.
+ Thiết kế giao diện ứng dụng:
+ Giao diện demo ứng dụng trên có thể giúp cho các bạn tìm vị trí của từ khóa google theo các google ở mỗi quốc gia khác nhau.
- Bài viết, này mình chỉ hướng dẫn các bạn các tìm 1 từ khóa, các bạn có thể tùy biến để tìm nhiều từ khóa khác nhau cùng một domain.
Đầu tiên các bạn cần tạo 1 class Keywords: để khi quét element trả về position và link url của domain trong lap trinh csharp.
Source code tạo Class Keywords C#:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsFormsApplication1 { class keyword { private string link; private int postion; public keyword() { } public keyword(string link, int postion) { this.Link = link; this.Postion = postion; } public string Link { get { return link; } set { link = value; } } public int Postion { get { return postion; } set { postion = value; } } } }
Và tiếp đến mình sẽ code cho ứng dụng:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; //using System.Web; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { comboBox1.SelectedIndex = 0; } private keyword GetPosition(string Url, string searchTerm) { keyword result = new keyword(); string raw = comboBox1.Text + "/search?num=100&q={0}&btnG=Search"; string search = string.Format(raw, System.Uri.EscapeDataString(searchTerm)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string html = reader.ReadToEnd(); result = FindPosition(html, Url); return result; } } } private keyword FindPosition(string html, string url) { keyword result = new keyword(); var Webget = new HtmlWeb(); var page = Webget.Load("https://google.com"); page.LoadHtml(html); var list = page.DocumentNode.SelectNodes("//h3[@class='r']//a"); int count = list.Count(); int i = 0; foreach (var obj in list) { i++; if (i > count) { break; } else { var urls = obj.SelectSingleNode(".").Attributes["href"].Value; if (urls.Contains(url) ) { // lấy link bài viết result.Link = urls; // lấy được vị trí result.Postion = i; return result; } } } return null; } private void button1_Click(object sender, EventArgs e) { keyword ketqua = new keyword(); ketqua = GetPosition(txtUrl.Text,txtkeyword.Text); if(ketqua != null) { lblResult.Text = string.Format("{0}", ketqua.Postion); string link = ketqua.Link; var linkParser = new Regex(@"(?:https?://|www.)S+?&sa", RegexOptions.Compiled | RegexOptions.IgnoreCase); foreach (Match m in linkParser.Matches(link)) link = m.Value; string pattern = "&sa"; string replacement = ""; Regex rgx = new Regex(pattern); string result = rgx.Replace(link, replacement); lblLinkResponse.Text = result; }else { lblResult.Text = "Từ khóa của bạn không nằm trong Top 100"; lblLinkResponse.Text = "NaN"; } } private void lblLinkResponse_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start(lblLinkResponse.Text); } } }
Giao diện Demo ứng dụng:
Chúc các bạn thành công! Hãy nhớ like and share để lấy cảm hứng cho tác giả các bạn nhé.
Nếu bạn nào không làm được có thể để email bên dưới comment, mình sẽ gởi source code cho các bạn tham khảo!