DownloadData () создает HTML, отличный от браузера - PullRequest
1 голос
/ 23 октября 2009

Я пытаюсь загрузить исходный HTML-код веб-сайта, используя метод WebClient.DownloadData().

Мой метод должен дать мне источник:

public string GetSite(string URL)
    {
        Uri Site = new Uri(URL);
        byte[] lol = Client.DownloadData(Site);
        SiteSource = Encoding.ASCII.GetString(lol);
        return SiteSource;                    
    }

Я проверил TRIPLE, и когда я пишу точно такой же URL-адрес параметра URL, который я отправляю этим методом, мои программы загружают что-то еще полностью.

Нажатие Ctrl + U в Firefox, чтобы увидеть исходный код, показывает мне, что мне нужно увидеть (снова , простой HTML ), но в моем программном обеспечении я вижу нечто совершенно иное.

Что дает?

ДЛЯ ЯСНОСТИ :

Представьте, что в Firefox вы пишете www.google.com, просматривая источник в Firefox, который вы видите:

<html>
   <head>
   </head>
   <body> 
       <h1>Hello!</h1>
   </body>
</html>

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

<html>
   <head>
   </head>
   <body> 
       <h1>Bonjour!</h1>
   </body>
</html>

Ответы [ 2 ]

4 голосов
/ 23 октября 2009

Сайт может обнаруживать браузер и обслуживать другой HTML в зависимости от того, воспринимает ли он клиент Firefox, IE, веб-сканер и т. Д.

0 голосов
/ 23 октября 2009

Сайт может использовать файлы cookie, установленные в Firefox, заголовке User-Agent или других заголовках HTTP, чтобы решить, какой контент вам следует отправить.

Поскольку ваша программа на C # отправляет данные, отличные от Firefox, сайт может отправлять другое содержимое.

...