Как получить размер изображения на случайной странице, используя C # с MSHTML? - PullRequest
0 голосов
/ 08 марта 2011

Я пытаюсь получить изображения на странице, используя mshtml.Работа на 2 разных машинах (оба Win7-64 бит) дает мне разные результаты.Одна из машин работает просто отлично.Второй, однако, не может прочитать атрибуты ширины / высоты изображений.Все высоты / ширины нули.

public JsonResult GetHtml(string url)
{
    var client = new WebClient();
    var htmlCode = client.DownloadString(url);
    var htmlDocument = new mshtml.HTMLDocument() as mshtml.IHTMLDocument2;
    htmlDocument.write(htmlCode);
    var htmlImages = htmlDocument.body.all.tags("img");
    var listImages = new List<HtmlImage>();
    foreach (var htmlImage in htmlImages)
    {
        Console.Out.WriteLine("Src: {0}", htmlImage.src);
        Console.Out.WriteLine("Width: {0}", htmlImage.width);
        Console.Out.WriteLine("Height: {0}", htmlImage.height);
    }
}

Машина, которая работает нормально, использует MSDN Visual Studio 2010. Машина, которая не дает мне правильных результатов, использует Visual Studio Express Edition 2010.

Я буду очень признателен за любую помощь: как я могу получить размер изображения на обеих машинах?

1 Ответ

1 голос
/ 09 марта 2011

Вероятно, это связано с различными версиями движка MSHTML, установленными на этом компьютере. Убедитесь, что версии совпадают. Кроме того, убедитесь, что документ полностью загружен, прежде чем пытаться прочитать атрибуты из элементов.

Тем не менее, почему вы используете тяжелый элемент управления MSHTML только для чтения размеров изображения? Почему бы не использовать бесплатный, легкий и открытый исходный код HTML Agility Pack ?

...