2013-02-26 5 views
5

Я использую Agility Pack для анализа HTML, следуя этому вопросу What is the best way to parse html in C#? и получаю отличные результаты :) Проблема возникает, когда я попадал на некоторые веб-страницы, результаты были основаны на моем местоположении, поэтому для например, как я в Испании, я получаю результаты для региона Испании, и я хотел бы изменить, как если бы я был в Англии, как это можно сделать? Я имею в виду, что мне нужно изменить в пользовательском агенте? (Я использую как пользовательский агент «Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: xxx)» Gecko/20041107 Firefox/xx) «Настройки HTML Agility Pack

ответ

9

Вы можете использовать метод WebClient.DownloadString, который позволяет вам установить заголовки HTTP-запросов для загрузки содержимого веб-страницы, а затем передать его в пакет гибкости HTML.

Пользователь UserAgent не является тем, что контролирует язык. Это заголовок 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 
} 

Но если сайт использует распознавание на основе IP для отправки вам контента на разных языках существует не так много вы можете сделать на стороне клиента, чтобы изменить это.

+0

Я тоже использовал WebClient, а в содержимом html у меня есть -> lang = "es", поэтому вопрос в том, как я могу перейти на английский? – jobormo

+0

Отлично! это то, что я хотел, не волнуйтесь, сайты не используют распознавание IP :) – jobormo

1

Поиск по местоположению или страницы, как правило, выполняются через ip, или когда вы регистрируетесь, вы указываете сайт, на котором вы находитесь. вы можете захотеть заглянуть в прокси-сервер anon внутри страны, в которой вы хотели бы выглядеть так, как будто вы находитесь.