2010-01-19 15 views
5

Hãy tha thứ cho sự thiếu hiểu biết của tôi về chủ đềTải Toàn bộ trang web bằng C#

Tôi đang sử dụng

string p="http://" + Textbox2.text; 
string r= textBox3.Text; 
System.Net.WebClient webclient=new 
System.Net.Webclient(); 
webclient.DownloadFile(p,r); 

để tải về một trang web. Bạn có thể vui lòng giúp tôi bằng cách tăng cường mã để tải xuống toàn bộ trang web không. Đã thử sử dụng HTML Screen Scraping nhưng nó trả về cho tôi chỉ các liên kết href của các tệp index.html. Làm cách nào để tôi tiếp tục trước

Cảm ơn

+0

Bạn đã giải quyết được sự cố chưa? – Jason

Trả lời

10

Nạo trang web thực sự là rất nhiều công việc, với nhiều trường hợp góc.

Gọi wget để thay thế. manual giải thích cách sử dụng tùy chọn "recursive retrieval".

8
protected string GetWebString(string url) 
    { 
     string appURL = url; 
     HttpWebRequest wrWebRequest = WebRequest.Create(appURL) as HttpWebRequest; 
     HttpWebResponse hwrWebResponse = (HttpWebResponse)wrWebRequest.GetResponse(); 

     StreamReader srResponseReader = new StreamReader(hwrWebResponse.GetResponseStream()); 
     string strResponseData = srResponseReader.ReadToEnd(); 
     srResponseReader.Close(); 
     return strResponseData; 
    } 

Điều này đặt trang web vào chuỗi từ URL được cung cấp.

Sau đó, bạn có thể sử dụng REGEX để phân tích cú pháp thông qua chuỗi.

Đoạn nhỏ này có các liên kết cụ thể ngoài craigslist và thêm chúng vào danh sách mảng ... Sửa đổi cho mục đích của bạn.

protected ArrayList GetListings(int pages) 
    { 
      ArrayList list = new ArrayList(); 
      string page = GetWebString("http://albany.craigslist.org/bik/"); 

      MatchCollection listingMatches = Regex.Matches(page, "(<p><a href=\")(?<LINK>/.+/.+[.]html)(\">)(?<TITLE>.*)(-</a>)"); 
      foreach (Match m in listingMatches) 
      { 
       list.Add("http://albany.craigslist.org" + m.Groups["LINK"].Value.ToString()); 
      } 
      return list; 
    } 
+0

+1, cũng nhớ phân tích cú pháp tất cả các tệp văn bản (html, css) vì chúng có thể có liên kết đến các tài nguyên khác –