2010-01-19 31 views
5

C# bir bütün web sitesini indir

konusundaki cehaletimi affedin Bir web sayfasını indirmek için

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

kullanıyorum. Tüm siteyi indirecek şekilde kodu geliştirmeme yardımcı olabilir misiniz? HTML Ekran Kazıma kullanarak denedim, ancak bana sadece index.html dosyalarının href bağlantılarını döndürür. Nasıl devam edeceğim

Teşekkürler

+0

Sorununuzu çözdünüz mü? – Jason

cevap

10

devam bir web sitesi Kazıma köşe durumlarda bir sürü, aslında bir sürü iş olduğunu nasıl. Bunun yerine, wget numaralı telefonu çağırın. manual, "recursive retrieval" seçeneklerinin nasıl kullanılacağını açıklar.

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; 
    } 

Bu, web sayfasını sağlanan URL'den bir dizeye koyar.

Daha sonra dizgeyi ayrıştırmak için REGEX kullanabilirsiniz.

Bu küçük parça, craigslist'ten belirli linkler alır ve bunları bir arraylist'e ekler ... Amacınıza göre değiştirin.

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, diğer kaynaklara bağlantılar olabileceğinden tüm metin dosyalarını (html, css) ayrıştırmayı da unutmayın –

İlgili konular