Как извлечь url-адреса изображений с помощью пакета HTML agility Pack ?
Я с помощью HTML ловкость обновления, чтобы извлечь URL-адрес изображения от введенного веб-адреса.
Я могу получать изображения, за исключением ... Paytm.com".
В paytm.com, когда я вижу источник страницы, он отображает 5 тегов "img", где, как я получаю только 3.
Может ли кто-нибудь сказать мне, почему я получаю только три изображения в списке вместо пяти, и как я могу решить эту проблему?
Что я уже пробовал:
string[] imgList = new string[20]; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.Load("https://paytm.com/"); var i=0; foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img")) { imgList[i] = node.Attributes["src"].Value; i++; }
Sergey Alexandrovich Kryukov
Покажите фрагменты исходного HTML - кода, о котором идет речь. Посмотрите на 5 случаев "img" и попытайтесь увидеть разницу между ними. Скорее всего, другие IMG просто имеют другой уровень вложенности.
—СА
[no name]
В настоящее время я использую приведенный выше код в своем проекте. Он прекрасно работает, за исключением ... paytm.com".
Как я могу проверить, имеет ли IMG другой уровень вложенности или нет?
Sergey Alexandrovich Kryukov
Твоя логика не работает.
"Ваша проблема заключается в другом вложении" не означает "нужно проверить вложенность"...
Вы заметили: я уже ответил на ваш вопрос.
И еще раз обратите внимание: вы задаете этот вопрос и все еще не показываете HTML с соответствующим якорем.
—СА
[no name]
Я не понимаю, к чему ты клонишь!
Я использую приведенный выше код. там нет файла HTML-страницы. Я загружаю документы с помощью пакета HTMLAgility pack, если получаю код ответа "OK".
Я проверял код, просматривая источник url-адреса, и там я обнаружил проблему. Я получал 3 изображения, где, как есть 5 изображений, я могу видеть на странице источник "https://www.paytm.com".
Я не смог выяснить, почему, поэтому отправил этот вопрос. Там нет такого HTML существует, как я использую выше код, чтобы показать.
Sergey Alexandrovich Kryukov
Посмотрите на мое решение и, пожалуйста, скажите мне, что неясно.
Я понятия не имею, о чем вы говорите. Если вы используете пакет HTML Agility pack, то у вас есть HTML-страница.
—СА
Richard Deeming
Я удивлен, что вы видите какие-либо URL-адреса изображений; этот сайт использует AngularJS, поэтому, если вы не выполните скрипт на странице, ни один из них не будет работать. <img>
теги есть src
набор атрибутов.
Кроме того, вы должны использовать List<string>
вместо массива. Если страница содержит более 20 изображений, ваш текущий код завершится с ошибкой. IndexOutOfRangeException
.
[no name]
Да, он использует AngularJs. Я могу вычеркнуть значения ng-src. но проблема в том, что в исходном коде страницы есть пять тегов img, а во время выполнения я получаю только три.
Массив размером 20 предназначен только для тестирования. Позже я буду использовать List<string>.