2013-02-26 6 views
5

Ich benutze Agility Pack, um HTML zu analysieren, folgende Frage What is the best way to parse html in C#? und ich bekomme tolle Ergebnisse :) Das Problem kommt, wenn ich in einigen Webseiten entre die Ergebnisse basieren auf meinem Standort, so für Beispiel wie ich bin in Spanien, ich bekomme die Ergebnisse für die Region Spanien und ich würde gerne ändern, als ob ich in England wäre, wie kann es gemacht werden? Ich meine, dass ich etwas im User Agent ändern muss? (Ich benutze als Benutzer-Agent "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-US; rv: xxx) Gecko/20041107 Firefox/xx)"HTML Agility Pack Einstellungen

Antwort

9

Sie könnten die WebClient.DownloadString-Methode, die Sie verwenden können Legen Sie HTTP-Anforderungsheader fest, um den Inhalt der Webseite herunterzuladen und an HTML agility Pack zu füttern.

Der UserAgent steuert nicht die Sprache. Es ist der Accept-Language Header. So zum Beispiel:

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 
} 

Aber wenn die Site IP-basierte Erkennung verwendet, um Sie Inhalte in verschiedenen Sprachen zu senden gibt es nicht viel Sie von der Client-Seite tun könnten, das zu ändern.

+0

Ich habe den WebClient auch verwendet, und im HTML-Inhalt habe ich -> lang = "es", so die Frage ist, wie kann ich auf Englisch wechseln? – jobormo

+0

Großartig! das ist, was ich wollte, mach dir keine Sorgen die Websites verwendet keine IP-Erkennung :) – jobormo

1

location-basierte Suche oder Seiten werden in der Regel über ip durchgeführt, oder wenn Sie sich registrieren, sagen Sie der Website, wo Sie sind. Vielleicht möchten Sie in einem Anon-Proxy in dem Land aussehen, wie Sie aussehen möchten.

Verwandte Themen