private void button1_Click(object sender, EventArgs e) { //string strUrl = txt_WebTK.Text; //Uri newUri = new Uri("https://google.com.vn"); //int I = GetPosition(newUri, txt_TuKhoa.Text); //txt_KQViTri.Text = I.ToString(); Tukhoa ketqua = new Tukhoa(); ketqua = LayViTri(txt_WebTK.Text, txt_TuKhoa.Text); if (ketqua != null) { txt_KQViTri.Text = string.Format("{0}", ketqua.Vitri); string link = ketqua.Diachi; var linkParser = new Regex(@"(?:https?://|www.)S+?&sa", RegexOptions.Compiled | RegexOptions.IgnoreCase); // 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 ketqua_DC = rgx.Replace(link, replacement); ////textBox2.Text = ketqua_DC; txt_KQDiaChi.Text = link; } else { txt_KQViTri.Text = "Từ khóa của bạn không nằm trong Top 100"; txt_KQDiaChi.Text = "NaN"; } }
private Tukhoa LayViTri(string Url, string tukhoa_tk) { Tukhoa ketqua = new Tukhoa(); string raw = cbl_webnguon.Text + "/search?num=100&q={0}&btnG=Search"; //tìm kiếm trên trang mình lựa chọn ở combobox string search = string.Format(raw, System.Uri.EscapeDataString(tukhoa_tk)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search); // khới tạo HttpWebRequest theo từ khóa using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string html = reader.ReadToEnd(); ketqua = TimViTri(html, Url); // lấy vị trí một trang web tìm đuoẹc với rrang web cần tìm theo thuật toán viết ở dưới return(ketqua); } } }
private Tukhoa TimViTri(string html, string url) { int dem = 1; Tukhoa ketqua = new Tukhoa(); var Webget = new HtmlWeb(); // khởi tạo một đối tượng HtmlWeb của thư viện HtmlAgilityPack var page = Webget.Load("https://google.com.vn"); // load trên địa chỉ google page.LoadHtml(html); var list = page.DocumentNode.SelectNodes("//a/@href"); //("//h3[@class='r']//a");lấy thành phần href của thẻ a trên tất các link mà google tìm đc int count = list.Count();// dếm tổng số link tìm đc //tao lao int i = 0; ArrayList ListUrls1 = new ArrayList(); ArrayList ListUrls2 = new ArrayList(); foreach (var obj in list) { i++; if (i > count) { break; } else // i = 4; { // var urls = obj.SelectSingleNode(".").Attributes["href"].Value; // if (urls.Contains(url)) // { // // lấy link bài viết // ketqua.Diachi = urls; // // lấy được vị trí // ketqua.Vitri = i; // return ketqua; // } // } //} //return null; var http = "https://"; var urls = obj.SelectSingleNode(".").Attributes["href"].Value;// coi lại sai lay thong tin ơ đay // ListUrls2.Add(urls);// them urls vao mang if (urls.Contains(http)) //kiểm tra kink tìm được có chưa địa chỉ cần tìm k { ListUrls1.Add(urls); // them urls vao mang // j++; for (int j = 0; j < ListUrls1.Count; j++) { //ListUrls2.Add(ListUrls1[j]); for (int y = 1; y < ListUrls1.Count; y++) { //ListUrls2.Add(ListUrls1[j]); if (!ListUrls1[j].ToString().Contains(url) && ListUrls1[y].ToString().Contains(url)) { ListUrls2.Add(ListUrls1[j]); } if (ListUrls1[j].ToString().Contains(url) && ListUrls1[y].ToString().Contains(url)) { //ListUrls2.Remove(ListUrls1[j]); ListUrls2.Add(ListUrls1[j]); //lấy link bài viết //ketqua.Diachi = ListUrls1[j].ToString(); //lấy được vị trí ListUrls1.Remove(ListUrls1[y]); //ListUrls2.Add(ListUrls1[j]); //ketqua.Vitri = j; //ketqua.Vitri = j; //ketqua.Vitri = ListUrls2.Count; //return ketqua; } } } } int j1; for (j1 = 0; j1 < ListUrls2.Count; j1++) { if (ListUrls2[j1].ToString().Contains(url)) { ketqua.Diachi = ListUrls2[j1].ToString(); ketqua.Vitri = j1 + 1; return(ketqua); } } } } return(null); }