• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[C#] Lấy source trang web

Các thủ thuật liên quan đến xử lý chuỗi và thời gian

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 948
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

[C#] Lấy source trang web

Gửi bàigửi bởi NoBi » T.Sáu 28/03/2008 2:55 pm

Thủ thuật: Lấy source trang web
Tác giả: Sưu tầm
Mô tả: Return HTML Page Source From Web URL
---------------------------------------------------
Return HTML Page Source From Web URL in C#

Mã: Chọn hết

  1. using System.Net;
  2. using System.Xml;
  3. using System.IO;

Mã: Chọn hết

  1.             string url = "http://caulacbovb.com";
  2.  
  3.             HttpWebRequest myWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
  4.             myWebRequest.Method = "GET";
  5.             // make request for web page
  6.             HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
  7.             StreamReader myWebSource = new StreamReader(myWebResponse.GetResponseStream());
  8.             string myPageSource = myWebSource.ReadToEnd();
  9.             myWebResponse.Close();
  10.             // Thêm textboxt vào, gở comment để test
  11.             //this.textBox1.Text = myPageSource;


Hoặc:

Mã: Chọn hết

  1.  
  2.         private string ReadHTMLCode(string URL)
  3.         {
  4.             try
  5.             {
  6.                 WebClient webClient = new WebClient();
  7.                 byte[] reqHTML;
  8.                 reqHTML = webClient.DownloadData(URL);
  9.                 UTF8Encoding objUTF8 = new UTF8Encoding();
  10.                 return objUTF8.GetString(reqHTML);
  11.             }
  12.             catch (Exception Ex)
  13.             {
  14.                 MessageBox.Show(Ex.Message,"Unable to open file from URL");
  15.             }
  16.             return "error";
  17.         }
  18.  


Gọi hàm :

Mã: Chọn hết

  1. this.textBox1.Text = ReadHTMLCode("http://caulacbovb.com");


:>

lilik48
Bài viết: 3
Ngày tham gia: T.Sáu 11/04/2008 2:55 pm

Re: [C#] Lấy source trang web

Gửi bàigửi bởi lilik48 » T.Ba 29/04/2008 3:41 pm

Bạn NoBi cho mình hỏi với, máy mình nối thẳng đường dây ra ngoài Internet thì source trên chạy bình thường, nhưng khi mang nó đến công ty máy mình phải đi qua một con máy chủ thì source lại không chạy được nữa và có thông báo:
The remote server returned an error: (407) Proxy Authentication Required.
Bạn chỉ rõ cho mình với, cảm ơn

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: [C#] Lấy source trang web

Gửi bàigửi bởi anhtuyenbk » T.Ba 29/04/2008 3:59 pm

Quá rõ ràng rồi còn gì "Proxy Authentication Required. " bạn phải có quyền đăng nhập mới lấy được.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

lilik48
Bài viết: 3
Ngày tham gia: T.Sáu 11/04/2008 2:55 pm

Re: [C#] Lấy source trang web

Gửi bàigửi bởi lilik48 » T.Ba 29/04/2008 4:07 pm

Bây giờ mình có account rồi thì làm như nào hả bạn

Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: [C#] Lấy source trang web

Gửi bàigửi bởi clarkkent » T.Năm 08/05/2008 3:27 pm

Vậy trong VB.NET thì vấn đề lấy source làm như thế nào vậy các bác... :D
Mình đang cần lắm... :((
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: [C#] Lấy source trang web

Gửi bàigửi bởi anhtuyenbk » T.Năm 08/05/2008 3:33 pm

Xài cách này có điểm dở là khi chạy thì Form sẽ bị đơ, nhìn mất cảm tình.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

violetlotous
Thành viên tích cực
Thành viên tích cực
Bài viết: 101
Ngày tham gia: T.Tư 23/04/2008 9:58 am
Has thanked: 8 time
Been thanked: 1 time

Re: [C#] Lấy source trang web

Gửi bàigửi bởi violetlotous » T.Năm 02/08/2012 11:49 am

anhtuyenbk ơi, vậy có cách nào để lúc nó đang chạy, Form ko bị đơ không

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 948
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

Re: [C#] Lấy source trang web

Gửi bàigửi bởi NoBi » T.Sáu 03/08/2012 11:31 am

Bạn dùng thêm Thread:
  1.         private string loadData()
  2.         {
  3.             using (WebClient client = new WebClient())
  4.             {
  5.                 //client.DownloadFile("http://caulacbovb.com", @"C:\localfile.html");
  6.                 string htmlCode = client.DownloadString("http://caulacbovb.com");
  7.                 return htmlCode;
  8.             }
  9.         }
  10.  
  11.         private void button1_Click(object sender, EventArgs e)
  12.         {
  13.             textBox1.Text = "loading..............";
  14.             Thread t = new Thread(() =>
  15.             {
  16.                 string data = loadData();
  17.                 this.Invoke((MethodInvoker)delegate {
  18.                     textBox1.Text = data;
  19.                 });
  20.             });
  21.             t.Start();
  22.         }
:>

violetlotous
Thành viên tích cực
Thành viên tích cực
Bài viết: 101
Ngày tham gia: T.Tư 23/04/2008 9:58 am
Has thanked: 8 time
Been thanked: 1 time

Re: [C#] Lấy source trang web

Gửi bàigửi bởi violetlotous » T.Tư 08/08/2012 3:33 pm

Thanks bạn, nếu sử dụng như bạn thì form không bị đơ, nhưng có vấn đề phát sinh là mình sẽ lấy dữ liệu download đó xử lý. nên mình thêm t.Join() thì form vẫn sẽ bị đơ

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 948
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

Re: [C#] Lấy source trang web

Gửi bàigửi bởi NoBi » T.Năm 09/08/2012 11:30 am

Cái ví dụ đó mình làm mẫu thôi. Còn muốn sử dụng với mục đích gì thì bạn phải tự tính toán xử lý tiếp (dùng thread tương tự hoặc cách nào đó cho nó đừng đơ). t.Join() là chờ cho thread chạy xong mới chạy tiếp thì bảo sao kg đơ?! nó bằng với việc kg chạy thread.
Nếu có thắc mắc về việc dùng thread thì tạo chủ đề khác nhé. Chủ đề này không bàn tới thread nữa.
:>


Quay về “[.NET] Chuỗi và Thời gian”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách