Копійте веб-сайт через HTTP для завантаження зображень, HTML та CSS


22

Мені потрібно зірвати сайт через HTTP. Мені потрібно завантажити зображення, HTML, CSS та JavaScript, а також організувати їх у файловій системі.

Хтось знає, як це зробити?


2
Слід зазначити, що ви не збираєтесь використовувати це програмне забезпечення для порушення авторських прав. В іншому випадку ми просто припускаємо, що ви хочете відобразити чужий вміст, щоб ви могли заробляти на ньому гроші.
belgariontheking

У нас колись клієнт хотів піти, але взяти статичну версію HTML свого сайту, відмовившись від CMS. Я використовував HTTrack для створення статичного сайту. Він добре працює в Windows та Ubuntu.
TRiG

4
@belgariontheking: Цікаво, що ти вважаєш найгірше. Ми також використовуємо WinHTTrack для завантаження статичної версії HTML власного динамічного веб-сайту.
Умбер Ферруле

Відповіді:


40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

Це працює в консолі.

це захопить сайт, зачекайте 3 секунди між запитами, обмежте швидкість його завантаження, щоб він не знищив сайт, і замаскуйте себе таким чином, що він здається просто браузером, щоб сайт не відрізав вас за допомогою механізму проти п'явки.

Зверніть увагу на -Aпараметр, який вказує на список типів файлів, які ви хочете завантажити.

Ви також можете використовувати інший тег, -D domain1.com,domain2.comщоб вказати серію доменів, які ви хочете завантажити, якщо вони мають інший сервер або будь-який інший для розміщення файлів різних типів. Немає безпечного способу автоматизувати це для всіх випадків, якщо ви не отримаєте файли.

wgetяк правило, попередньо встановлюється в Linux, але його можна тривіально компілювати для інших систем Unix або легко завантажити для Windows: GNUwin32 WGET

Використовуйте це для добра, а не зла.


1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U "Mozilla / 4.0 (сумісний; MSIE 7.0; Windows NT 5.1)" -k --directory-prefix "C: \ rip" - сторінка-реквізити -A htm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S

Чи буде це працювати над "Маршрутами URL-адреси"? Мене хвилює мій вміст (добре, пісні), написаний у соціальній мережі, і я хочу створити резервну копію на локальному рівні. Сайт "www.example.com", але є URL-адреса суєти з моїм іменем користувача "avi.example.com". Я не хочу завантажувати весь сайт, лише мій вміст!
Аві

В Linux ви можете встановити wget з джерел. Наприклад, версія Ubuntu не розбирає CSS в той час, як робить wget.
НДР

16

Гарне, безкоштовне рішення: HTTrack

HTTrack - це безкоштовна (GPL, вільне / безкоштовне програмне забезпечення) та зручна утиліта браузера в режимі офлайн.

Це дозволяє завантажувати всесвітній веб-сайт з Інтернету в локальний каталог, будуючи рекурсивно всі каталоги, отримуючи HTML, зображення та інші файли з сервера на комп'ютер. HTTrack організовує відносну структуру посилання оригінального сайту. Просто відкрийте сторінку свого "дзеркального" веб-сайту у своєму браузері, і ви можете переглядати сайт із посилання на посилання, як ніби ви переглядали його в Інтернеті. HTTrack також може оновити наявний дзеркальний сайт та відновити перервані завантаження. HTTrack повністю настроюється та має інтегровану систему довідки.


7

В системах Linux 'wget' робить це, дуже багато.

Його також було перенесено на кілька інших платформ, як згадується в кількох інших відповідях.



Оскільки це Linux, я, мабуть, просто створив VM Ubuntu, запустив wget і перенесіть файли назад на свій хост-комп'ютер. Схоже, це було б швидше, ніж перенесення в Windows. :) (Звісно, ​​перенесення до Windows, мабуть, все-таки хороша вправа!)
JMD

Я запускаю debian на своїй машині. Чи можу я сказати wget, щоб отримати пов'язані підрозділи dirs / javascript / css / images, надавши йому просто корінний домен http?
damon

# Завантажте весь вміст example.com wget -r -l 0 example.com

Так ... або використовуйте рідний порт Windows, або використовуйте Cygwin ...
Tmdean

2

Очевидно, про WGet вже згадували кілька разів. Найкращий інтерфейс, який я знайшов для цього

Існують деякі інші інтерфейси для WGet навколо, деякі з яких є кандидатами на найгірше питання інтерфейсу


1

Подивіться на розширення Scrapbook для firefox. Це робить дивовижну роботу в цьому, а також інтегрується з firebug і дозволяє вам видалити елементи з DOM перед тим, як зберегти, якщо хочете.


1

Вам потрібно використовувати wget - який доступний для більшості платформ. curl не запитуватиме документи рекурсивно, що є однією з головних переваг wget.

Linux: (зазвичай входить у дистрибутив) http://www.gnu.org/software/wget/
Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
Mac: http: //www.geekology. co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

ВИМОЖАЙТЕ, щоб ви не забивали веб-сайт - налаштовуйте відповідні затримки між запитами та переконайтесь, що це передбачено умовами надання сайту.

-Адам


насправді, ми забиваємо наші сервери. сайт динамічно генерується за допомогою PHP, і CMS / DB був начебто забруднений. це суперечлива історія, я розробник, який щойно потрапив сюди. але ми все будуємо на джанго зараз, тож вам не потрібно хвилюватися.
damon

1

Насправді, слідкуючи за моїм коментарем у публікації GWLlosa, я просто згадав, що у мене встановлений GnuWin32, і досить впевнений, що він містить порт Wget.

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP


1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p : параметр повідомляє wget включати всі файли, включаючи зображення.
  • -e robots=off : ігноруйте сайти правила robots.txt
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : рядок агента користувача
  • --random-wait : не потрапляйте у чорний список
  • --limit-rate=20k : обмежує швидкість завантаження файлів.
  • -b : продовжує wget після виходу.

Це ті парами, якими я користуюся. Я також додаю -c(або --continue) варіант, коли все піде не так і мені доведеться перезапустити процес.
kub1x


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.