2015-01-03 3 views
7

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

Я хочу только одну коробку каждой страницы для загрузки, размер файла составляет 10 КБ. Для этого я использую WebClient и htmlagilitypack.

WebClient Client = new WebClient(); 
var result = Encoding.GetEncoding("UTF-8").GetString(Client.DownloadData(URL)); 

enter image description here

+1

Upvoted это, потому что это достойный вопрос. – cybermonkey

+0

@cybermonkey большое спасибо –

+0

@cybermonkey спасибо за добавление изображения. –

ответ

7

К сожалению, это невозможно, потому что HTTP не предназначен для доставки определенную часть веб-страницы. Он поддерживает range requests, но для этого вам нужно знать, где именно (с точки зрения байтов) находится желаемый контент.

Вы можете

  • загрузить всю страницу, а затем
  • использовать HTML разборе библиотеки для извлечения части вам нужно.
+0

Возможно, стоит отметить, что это можно сделать с помощью запросов GET PHP; отправьте запрос, добавленный к URL-адресу, и отобразит только тот контент, который им нужен. – cybermonkey

0

Вы не можете этого достичь.

только решение меняет структуру сайта. если у вас есть контроль над сервером -

Изменить архитектуру вашего веб-сайта, сделав данные в окне доступными через ajax call. Теперь вы можете получить данные через WebClient. Если эти данные уже отправлены через вызов API, вы можете указать свой WebClient на этот URI.

Вот пример структурирования вам сайт на основе AJAX - AJAX with jQuery and ASP.NET

+0

Возможно, стоит отметить, что это можно сделать с помощью запросов GET PHP; отправьте запрос, добавленный к URL-адресу, и отобразит только тот контент, который им нужен. – cybermonkey

+0

Я предполагаю, что OP использует Microsoft TechStack. Поэтому я основывал свой пример на этом. – rahulroy9202