2013-09-30 3 views
8

В Интернете есть множество инструментов для загрузки статической копии веб-сайта, такого как HTTrack. Есть также множество инструментов, некоторые коммерческие, для «соскабливания» контента с веб-сайта, такого как Mozenda. Затем есть инструменты, которые, по-видимому, встроены в такие программы, как PHP и * nix, где вы можете «file_get_contents» или «wget» или «cURL» или просто «file()».httrack wget curl scrape & fetch

Я полностью смущен этим, и я думаю, что основная причина заключается в том, что ни одно из описаний, которые я встретил, не использует тот же словарь. Поверхность, по крайней мере, кажется, что все они делают одно и то же, но, возможно, нет.

Это вопрос. Что именно делают эти инструменты? Они делают то же самое? Они делают то же самое с помощью разных технологий? Если они не делают то же самое, как они отличаются?

ответ

9

Прежде всего, позвольте мне пояснить разницу между «зеркалированием» и «очищением».

Зеркальное отражение относится к загрузке всего содержимого веб-сайта или некоторых известных его разделов (включая HTML, изображения, скрипты, таблицы стилей CSS и т. Д.). Это часто делается для сохранения и расширения доступа к ценному (и часто ограниченному) интернет-ресурсу или к добавлению дополнительной избыточной избыточности. Например, многие университеты и ИТ-компании отражают различные выпуски архивов поставщиков Linux. Зеркалирование может означать, что вы планируете размещать копию веб-сайта на своем собственном сервере (с разрешения владельца оригинального контента).

Скребок относится к копированию и извлечению некоторых интересных данных с веб-сайта. В отличие от зеркалирования, скремблирование задает конкретный набор данных (имена, номера телефонов, котировки акций и т. Д.), А не весь контент сайта. Например, вы можете «скопировать» данные о среднем доходе из Бюро переписи США или котировки акций Google Finance. Это иногда делается против условий и условий хоста, что делает его незаконным.

Эти два устройства могут быть объединены для разделения копирования данных (зеркалирования) на проблемы извлечения информации (скребки). Например, вы можете обнаружить, что его быстрее зеркалировать сайт, а затем очистить локальную копию, если извлечение и анализ данных происходит медленно или интенсивнее.

Чтобы ответить на остальную часть вашего вопроса ...

file_get_contents и file PHP функция для чтения файлов из локальной или удаленной машины. Файл может быть HTML-файлом, иначе он может быть чем-то другим, например текстовым файлом или электронной таблицей. Это не то, к чему обычно относится либо «зеркальное отображение», либо «соскабливание», хотя вы можете написать свое собственное зеркало/скребок на основе PHP, используя их.

и curl являются автономными программами командной строки для загрузки одного или нескольких файлов с удаленных серверов с использованием различных параметров, условий и протоколов. Оба являются невероятно мощными и популярными инструментами, основное отличие состоит в том, что wget обладает богатыми встроенными функциями для зеркалирования всего веб-сайта.

HTTrack аналогичен wget, но использует графический интерфейс вместо командной строки. Это облегчает использование для тех неудобных команд управления с терминала, за счет потери мощности и гибкости, обеспечиваемых wget.

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

Mozenda является скребок, который, в отличие от HTTrack, wget или curl позволяет целевой конкретные данные должны быть извлечены, а не слепо копировать все содержимое. Однако у меня мало опыта.

P.S. Обычно я использую wget, чтобы отразить интересующие меня HTML-страницы, а затем запустить комбинацию скриптов Ruby и R для извлечения и анализа данных.

+0

Arman, Спасибо, что ответ был не только быстрым, но и фактически рассмотрел мои проблемы. Это происходит не так часто, как должно. –

+4

Я хотел бы добавить, что HTTrack имеет параметр командной строки. https://www.httrack.com/html/fcguide.html – raRaRa

2

Есть еще одна вещь, скорее, техническая: при загрузке (зеркалировании), HTTrack/wget/curl не только загружает многие файлы HTML, но также изменяет внутренние ссылки в этих файлах - так что эти ссылки позволяют выполнять «запуск» загруженных веб-страниц в новом местоположении (или в новом домене или на вашем локальном компьютере). Эти внутренние ссылки включают в себя: ссылки с одной загруженной страницы на другую загруженную страницу, ссылки на встроенные изображения и другие носители и ссылки на «вспомогательные» файлы, такие как javascripts, ccs и т. Д.

+3

Это неверно: 'curl' не имеет возможности переписывать URL-адреса вообще, а' HTTrack' и 'wget' не будут делать этого путем по умолчанию вам необходимо передать параметры, чтобы активировать это поведение. Что еще более важно, вам может не потребоваться переписать URL-адреса, чтобы получить рабочее зеркало; это будет зависеть от того, связаны ли файлы с использованием абсолютных или относительных путей. –

Смежные вопросы