Например, я хотел бы извлечь скриншот или страницу, содержащую только краткое изложение избранной статьи википедии (http://en.wikipedia.org/wiki/Main_Page).

Это не должно быть всей страницы.

1 ответ1

0

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

Вы вообще не хотите извлекать другие биты страницы (на вашем клиенте) или вы хотите получить их, а затем удалить их? Вы могли бы сделать что-то вроде этого клиента довольно легко. Получение его через веб-сервис где-то было бы эквивалентно прохождению через прокси-сервер фильтрации, и многие из технологий, используемых для фильтрации прокси (например, privoxy), могли бы использоваться там, но вам нужно было бы написать свой собственный код, чтобы определить, что важно и что нет.

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

Изменить: С другой стороны, если все, что вам нужно, это получить содержимое статьи в Википедии, это очень выполнимо. Фактически, вы могли бы написать простой прокси-сервер фильтрации или даже какой-нибудь локальный JavaScript, который бы обращал внимание на основанную на шаблонах структуру любого веб-сайта MediaWiki и вырезал весь хром. Но, конечно, это не относится к сайтам, не относящимся к MediaWiki ...

Если вы хотите знать, почему это невозможно в общем случае, подумайте над этой проблемой: спроектируйте мне машину, которая без какого-либо вмешательства человека, кроме физического перемещения устройства на разумное расстояние, прекрасно обрежет любое дерево любой высоты. или ширина или виды, до соответствующего размера. Удачи с этим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .