2010-01-19 14 views
5

विषयएक पूरी वेबसाइट डाउनलोड सी # में

पर मेरी अज्ञानता माफ कर दो मैं

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

एक वेबपेज डाउनलोड करने के लिए उपयोग कर रहा हूँ। क्या आप कोड को बढ़ाने के लिए मेरी मदद कर सकते हैं ताकि वह पूरी वेबसाइट डाउनलोड कर सके। एचटीएमएल स्क्रीन स्क्रैपिंग का उपयोग करने का प्रयास किया लेकिन यह मुझे index.html फ़ाइलों के केवल href लिंक देता है। कैसे मैं आगे

धन्यवाद

+0

क्या आपको अपनी समस्या का समाधान हुआ? – Jason

उत्तर

10

आगे बढ़ना है एक वेबसाइट को स्क्रैप करना, वास्तव में बहुत काम है कोने मामलों की एक बहुत कुछ के साथ।

इसके बजाय wget को आमंत्रित करें। manual बताता है कि "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; 
    } 

यह वेबपृष्ठ को आपूर्ति किए गए यूआरएल से एक स्ट्रिंग में रखता है।

फिर आप स्ट्रिंग के माध्यम से पार्स करने के लिए REGEX का उपयोग कर सकते हैं।

यह छोटा टुकड़ा क्रेगलिस्ट से विशिष्ट लिंक प्राप्त करता है और उन्हें एक सरणी सूची में जोड़ता है ... अपने उद्देश्य में संशोधित करें।

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, सभी टेक्स्ट फ़ाइलों (एचटीएमएल, सीएसएस) को पार्स करना भी याद रखें क्योंकि उनके पास अन्य संसाधनों के लिंक हो सकते हैं –

संबंधित मुद्दे