Как я могу использовать HTML Agility Pack для извлечения всех изображений с веб-сайта?

Я просто загрузил HTMLAgilityPack, и в документации нет примеров.

Я ищу способ загрузить все изображения с веб-сайта. Строки адреса, а не физическое изображение.

 

Мне нужно потянуть источник каждого тега img. Я просто хочу почувствовать библиотеку и то, что она может предложить. Все говорили, что это лучший инструмент для работы.

редактировать

 public void GetAllImages() { WebClient x = new WebClient(); string source = x.DownloadString(@"http://www.google.com"); HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); document.Load(source); //I can't use the Descendants method. It doesn't appear. var ImageURLS = document.desc .Select(e => e.GetAttributeValue("src", null)) .Where(s => !String.IsNullOrEmpty(s)); } 

Вы можете сделать это с помощью LINQ, например:

 var document = new HtmlWeb().Load(url); var urls = document.DocumentNode.Descendants("img") .Select(e => e.GetAttributeValue("src", null)) .Where(s => !String.IsNullOrEmpty(s)); 

EDIT : этот код теперь работает; Я забыл написать document.DocumentNode .

На основе их одного примера, но с измененным XPath:

  HtmlDocument doc = new HtmlDocument(); List image_links = new List(); doc.Load("file.htm"); foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//img")) { image_links.Add( link.GetAttributeValue("src", "") ); } 

Я не знаю этого расширения, поэтому я не уверен, как записать массив в другое место, но это, по крайней мере, даст вам ваши данные. (Кроме того, я не определяю массив правильно, я уверен. Извините).

редактировать

Используя ваш пример:

 public void GetAllImages() { WebClient x = new WebClient(); string source = x.DownloadString(@"http://www.google.com"); HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); List image_links = new List(); document.Load(source); foreach(HtmlNode link in document.DocumentElement.SelectNodes("//img")) { image_links.Add( link.GetAttributeValue("src", "") ); } } 
  • Разбор JSON на Java без знания формата JSON
  • «Ожидалось BEGIN_OBJECT, но было STRING в строке 1 столбца 1»
  • Почему чтение записей структурных полей из std :: istream завершается неудачно, и как я могу это исправить?
  • SimpleDateFormat.parse () игнорирует количество символов в шаблоне
  • Разбор строки с разделителями-запятыми std :: string
  • Как читать или анализировать файлы MHTML (.mht) в java
  • Можете ли вы порекомендовать библиотеку Java для чтения (и, возможно, записи) файлов CSV?
  • Кросс-платформенный способ получить номер строки INI-файла, где указан данный параметр
  • ISO 8601 Объект String to Date / Time в Android
  • Сканер только считывает имя файла и ничего больше
  • Извлечение полей Jmeter / анализ JSON-ответа
  • Давайте будем гением компьютера.