httrack wget скручиваемость
В Интернете существует ряд инструментов для загрузки статической копии веб-сайта, например HTTrack. Существует также множество инструментов, в том числе коммерческих, для "удаления" контента с веб-сайта, такого как Mozenda. Тогда есть инструменты, которые, очевидно, встроены в такие программы, как PHP и *nix, где вы можете "file_get_contents" или "wget" или "cURL" или просто "file()".
Я полностью сбит с толку всем этим, и я думаю, что главная причина в том, что ни одно из описаний, с которыми я сталкивался, не использует один и тот же словарь. На первый взгляд кажется, что все они делают одно и то же, но, возможно, нет.
Это мой вопрос. Что именно делают эти инструменты? Они делают то же самое? Они делают то же самое с помощью разных технологий? Если они не делают то же самое, чем они отличаются?
2 ответа
Прежде всего позвольте мне прояснить разницу между "зеркальным отображением" и "очисткой".
Зеркальное отображение относится к загрузке всего содержимого веб-сайта или некоторых его заметных разделов (включая HTML, изображения, скрипты, таблицы стилей CSS и т. Д.). Это часто делается для того, чтобы сохранить и расширить доступ к ценному (и часто ограниченному) интернет-ресурсу или добавить дополнительную избыточность при сбое. Например, многие университеты и ИТ-компании отражают архивы релизов различных поставщиков Linux. Зеркальное отображение может означать, что вы планируете разместить копию сайта на своем собственном сервере (с разрешения владельца исходного контента).
Очистка относится к копированию и извлечению некоторых интересных данных с веб-сайта. В отличие от зеркалирования, очистка предназначена для определенного набора данных (имен, телефонных номеров, биржевых котировок и т. Д.), А не для всего содержимого сайта. Например, вы можете "почистить" данные о среднем доходе из Бюро переписей США или котировки акций из Google Finance. Иногда это делается против условий принимающей стороны, что делает его незаконным.
Эти два могут быть объединены для того, чтобы отделить копирование данных (зеркальное отображение) от проблем извлечения информации (извлечения). Например, вы можете обнаружить, что быстрее зеркалировать сайт, а затем очистить локальную копию, если извлечение и анализ данных выполняется медленно или интенсивно в процессе.
Чтобы ответить на остальную часть вашего вопроса...
file_get_contents
а также file
Функции PHP предназначены для чтения файла с локальной или удаленной машины. Файл может быть файлом HTML, или это может быть что-то еще, например, текстовый файл или электронная таблица. Это не то, что обычно означает "зеркальное отображение" или "очистка", хотя вы могли бы написать свое собственное зеркало / скребок на основе PHP, используя их.
wget
а также curl
являются автономными программами командной строки для загрузки одного или нескольких файлов с удаленных серверов с использованием различных параметров, условий и протоколов. Оба являются невероятно мощными и популярными инструментами, главное отличие в том, что wget
имеет богатые встроенные функции для зеркалирования целых сайтов.
HTTrack
похож на wget
в своем намерении, но использует графический интерфейс вместо командной строки. Это облегчает использование для тех, кому неудобно запускать команды с терминала, за счет потери мощности и гибкости, обеспечиваемой wget
,
Ты можешь использовать HTTrack
а также wget
для зеркалирования, но вам придется запускать свои собственные программы на полученных загруженных данных для извлечения (очистки) информации, если это ваша конечная цель.
Mozenda
это скребок, который, в отличие от HTTrack
, wget
или же curl
позволяет ориентироваться на конкретные данные, которые будут извлечены, а не копировать вслепую все содержимое. У меня мало опыта с этим, однако.
PS я обычно пользуюсь wget
чтобы отразить интересующие меня HTML-страницы, а затем запустить комбинацию сценариев Ruby и R для извлечения и анализа данных.
Есть еще одна вещь, скорее техническая, что можно сказать: во время загрузки (зеркалирования) HTTrack/wget/curl не только загружает много HTML-файлов, но и изменяет внутренние ссылки в этих файлах - так, чтобы эти ссылки позволяли правильно "работать" "из загруженных веб-страниц на новом месте (или на новом домене или на вашем локальном). Эти внутренние ссылки включают в себя: ссылки с одной загруженной страницы на другую загруженную страницу, ссылки на встроенные изображения и другие носители, а также ссылки на "вспомогательные" файлы, такие как javascripts, ccs и так далее.