2013-02-26 29 views
5

सेटिंग्स What is the best way to parse html in C#? और मैं महान परिणाम :) हो रही समस्या आता है जब मैं कुछ वेबपेजों में उद्यमियों थे परिणाम मेरे स्थान पर आधारित हैं, के लिए तो उदाहरण के लिए कि मैं स्पेन में हूं, मुझे स्पेन क्षेत्र के नतीजे मिल रहे हैं और मैं बदलना चाहूंगा जैसे कि मैं इंग्लैंड में था, यह कैसे किया जा सकता है? मेरा मतलब यह है कि मुझे उपयोगकर्ता एजेंट में कुछ बदलना है? (मैं एक प्रयोक्ता एजेंट के रूप में उपयोग "Mozilla/5.0 (विंडोज, यू, Windows NT 5.1, en-US; आर.वी.: xxx) छिपकली/20,041,107 फ़ायरफ़ॉक्स/xx)"एचटीएमएल चपलता पैक मैं चपलता पैक का उपयोग कर रहा एचटीएमएल पार्स करने के लिए, इस प्रश्न का अनुसरण

उत्तर

9

आप WebClient.DownloadString विधि है जो आप के लिए अनुमति देता इस्तेमाल कर सकते हैं वेब पेज की सामग्री डाउनलोड करने के लिए HTTP अनुरोध शीर्षलेख सेट करें और फिर इसे HTML चपलता पैक पर फ़ीड करें।

उपयोगकर्ता एजेन्ट भाषा को नियंत्रित नहीं करता है। यह Accept-Language हैडर है। उदाहरण के लिए तो:

using (var client = new WebClient()) 
{ 
    client.Headers[HttpRequestHeader.AcceptLanguage] = "es-ES"; 
    client.Headers[HttpRequestHeader.UserAgent] = "some user agent if you wish"; 
    string html = client.DownloadString("http://example.com"); 
    // feed the HTML to HTML Agility Pack 
    var doc = new HtmlDocument(); 
    doc.LoadHtml(html); 

    // now do the parsing 
} 

लेकिन अगर साइट आईपी आधारित पहचान का उपयोग करता है कि वहाँ बहुत आप ग्राहक की ओर से कर सकता है कि बदलने के लिए नहीं है आप अलग अलग भाषाओं में सामग्री भेजने के लिए।

+0

मैंने वेब क्लाइंट का भी उपयोग किया है, और HTML सामग्री में मेरे पास -> lang = "es" है, इसलिए प्रश्न यह है कि मैं अंग्रेजी में कैसे बदल सकता हूं? – jobormo

+0

बढ़िया! यही वही है जो मैं चाहता था, चिंता न करें साइटें आईपी मान्यता का उपयोग नहीं करती :) – jobormo

1

स्थान आधारित खोज या पृष्ठ आमतौर पर आईपी के माध्यम से किए जाते हैं, या जब आप पंजीकरण करते हैं, तो आप उस साइट को बताते हैं जहां आप हैं। आप उस देश के भीतर एक एनन प्रॉक्सी देखना चाहते हैं, जिसमें आप देखना चाहते हैं कि आप अंदर हैं।

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