Извлечь источник HTML веб-страницы - PullRequest
1 голос
/ 16 мая 2011

Я использую этот код для извлечения исходного кода htm веб-страницы:

    private static string GetWebText(string url)
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
        request.UserAgent = "A .NET Web Crawler";

        WebResponse response = request.GetResponse();

        Stream stream = response.GetResponseStream();

        StreamReader reader = new StreamReader(stream);
        string htmlText = reader.ReadToEnd();
        return htmlText;
    }

после того, как я использую этот код для извлечения исходного кода этой страницы (==> extract hrefs):

http://www.bayt.com/en/qatar/jobs/

Когда я получил свой исходный HTML-код, я не нашел много контента, как: «Советник по оптимизации затрат»

это потому, что это контент, созданный на стороне сервера?

Как я могу изменить свой код, чтобы он содержал исходный код html с включенным содержимым на стороне сервера?

Ответы [ 2 ]

0 голосов
/ 25 мая 2011

Возможно, они просто добавляют определенный контент, основываясь на строках идентификатора браузера (user-agent).

Попробуйте установить для этого пользовательского агента значение

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
0 голосов
/ 25 мая 2011

Скорее всего, причина на стороне сервера при просмотре источника на стороне сервера уже завершена и визуализирована.Тем не менее, у них могут быть скрипты, которые динамически изменяют содержимое страницы после завершения загрузки, которая, если ее изменение после загрузки завершено и все изначально было отрендерено, застряло с тем, что изначально было отрисовано, насколько далеко идет исходник.что-нибудь там после.Некоторые браузеры имеют возможность идти в ногу с рендерингом и манипуляциями, но в приложении многое делается для того, чтобы браузер делал это, это никак не связано с JavaScript.

Другая правдоподобная концепция или2 есть.У них есть что-то встроенное где-то на сайте для обнаружения XSS.Если скрипт ссылки отсутствует в самом домене, он увидит, что они хотят.Или .. Ваш сценарий страдает от "той же политики происхождения", которая может каким-то образом испортить его.Или как кто-то другой сказал, что вы не правильно разбираете DOM.

Вы можете попробовать загрузить страницу в iframe на вашем сайте, затем получить innerHTML iframe, а затем сбросить его в файл или что-то в этом роде.

...