[C#] Viết ứng dụng get dữ liệu google suggest trong lap trinh csharp
Hôm nay, mình xin tiếp tục hướng dẫn cho các bạn viết một ứng dụng, lấy dữ liệu của google suggest theo từ khóa trong lập trình csharp . Vậy google suggest là gì? Google Suggest là tính năng tự động hoàn thiện truy vấn tìm kiếm của các công cụ ...
Hôm nay, mình xin tiếp tục hướng dẫn cho các bạn viết một ứng dụng, lấy dữ liệu của google suggest theo từ khóa trong lập trình csharp.
Vậy google suggest là gì?
Google Suggest là tính năng tự động hoàn thiện truy vấn tìm kiếm của các công cụ tìm kiếm trong hộp tìm kiếm dựa trên sự phổ biến của từ khóa.
Lợi ích của google suggest:
Tính năng này giúp người sử dụng các công cụ tìm kiếm như google, bing, yahoo, baidu,… tiết kiệm thời gian tìm kiếm khi không phải mất công gõ hết các ký tự trong từ khóa mà mình cần tìm kiếm. Đề xuất, sửa sai chính tả, lặp lại 1 từ khóa tìm kiếm mà mình yêu thích.
Google Suggest được tạo ra dựa vào mức độ, tần suất truy vấn tại 1 khu vực địa lý để tạo ra những gợi ý nhanh. Những truy vấn gợi ý này được Google tự động lấy. Các từ khóa liên quan được xổ ra là vì từ khóa đó được nhiều người quan tâm và tìm kiếm nhiều.
Giao diện demo của ứng dụng C#
Google cho phép chúng ta sử dụng phương thức Get để get dữ liệu google theo từ khóa và trả về cho chúng ta một file XML. Và dựa vào kết quả trả về chúng ta sử dụng hàm đọc các node element trong file trả về để hiển thị lên Richtextbox trong C#.
Dưới đây là cú pháp để lấy dữ liệu google suggest.
http://www.google.com/complete/search?output=toolbar&q={0}&hl=en
Tham số q= đây là nơi chúng ta truyền từ khóa vào.
Ví dụ: Mình sử dụng đoạn truy vấn sau.
http://www.google.com/complete/search?output=toolbar&q=lap+trinh+vb+net&hl=en
Dưới đây, là kết quả chúng ta thu được khi chạy đường dẫn này trên trình duyệt Web Chrome.
Và dưới đây là source code được viết bằng ngôn ngữ lập trình C#, giúp các bạn truy vấn và hiển thị dữ liệu ra Richtextbox.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Linq; namespace google_suggest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private const string _suggestSearchUrl = "http://www.google.com/complete/search?output=toolbar&q={0}&hl=en"; public async Task> GetSearchSuggestions(string query) { if (String.IsNullOrWhiteSpace(query)) { throw new ArgumentException("Argument cannot be null or empty!", "query"); } string result = String.Empty; using (HttpClient client = new HttpClient()) { result = await client.GetStringAsync(String.Format(_suggestSearchUrl, query)); } XDocument doc = XDocument.Parse(result); var suggestions = from suggestion in doc.Descendants("CompleteSuggestion") select new GoogleSuggestion { Phrase = suggestion.Element("suggestion").Attribute("data").Value }; return suggestions.ToList(); } private async void button1_Click(object sender, EventArgs e) { txtResult.Text = null; List x = new List(); x = await GetSearchSuggestions(txtKeyword.Text); foreach (GoogleSuggestion item in x) { txtResult.Text = txtResult.Text + item.Phrase + " "; } } } public class GoogleSuggestion { public string Phrase { get; set; } public override string ToString() { return this.Phrase; } } }
Với ứng dụng, giúp chúng ta biêt được từ khóa đang hot, giúp chúng ta có chiến lược viết bài SEO cho từ khóa của mình một cách hợp lý.
HAVE FUN!
SOURCE CODE