2010-01-19 5 views
5

Pardonne mon ignorance sur le sujetTélécharger un site Web entier en C#

J'utilise

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

télécharger une page Web. Pouvez-vous s'il vous plaît m'aider à améliorer le code afin qu'il télécharge l'ensemble du site Web. Essayé en utilisant HTML Screen Scraping mais il me renvoie seulement les liens href des fichiers index.html. Comment puis-je procéder avant

Merci

+0

Avez-vous résolu votre problème? – Jason

Répondre

10

Grattage un site Web est en fait beaucoup de travail, avec beaucoup de cas d'angle.

Appelez plutôt wget. Le manual explique comment utiliser les options "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; 
    } 

Ceci place la page Web dans une chaîne à partir de l'URL fournie.

Vous pouvez ensuite utiliser REGEX pour analyser la chaîne.

Cette petite pièce obtient des liens spécifiques hors craigslist et les ajoute à un arraylist ... Modifiez à votre but.

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, n'oubliez pas d'analyser tous les fichiers texte (html, css) car ils peuvent avoir des liens vers d'autres ressources –

Questions connexes