Як завантажити з wget без наступних посилань з параметрами


11

Я намагаюся завантажити два сайти для включення на компакт-диск:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

Проблема у мене полягає в тому, що це обидва вікі. Тому при завантаженні з, наприклад:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Я отримую багато файлів, тому що він також переходить за посиланнями, як ...? Action = edit ...? Action = diff & version = ...

Хтось знає спосіб подолати це?

Я просто хочу, щоб нинішні сторінки були без зображень і без розбіжностей і т.д.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Це працювало на Берклі, але boinc-wiki.info все ще доставляє мені проблем: /

PPS:

Я отримав те, що, як видається, є найбільш релевантними сторінками:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

Не потрібно перехрещувати повідомлення між суперпопулярним сервером
Брайан

Де я мав це розмістити?
винищувач

це правильне місце. Це не питання сервера.
David Z

І все-таки я отримав кращі відповіді на сервері за замовчуванням;)
борець за краватку

Відповіді:


5

Нова версія wget (v.1.14) вирішує всі ці проблеми.

Вам потрібно скористатися новою опцією --reject-regex=....для обробки рядків запитів.

Зауважте, що я не зміг знайти нову інструкцію, яка включає ці нові параметри, тому вам доведеться скористатися командою довідки wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixза замовчуванням). Працює лише для останніх (> = 1.14) версій, wgetхоча, згідно з іншими коментарями.

Слідкуйте за тим, що, здається, ви можете використовувати --reject-regexлише один раз за wgetдзвінок. Тобто, ви повинні використовувати |в одному регулярному виразі, якщо ви хочете вибрати декілька регулярних виразів:

wget --reject-regex 'expr1|expr2|…' http://example.com

Може бути правдою щодо вимоги до версії. У мене був v1.12, і варіант недійсний. Після оновлення до v1.15 це було.
yunzen

Чергування Regex за допомогою |символу ("труба") не працює для мене з GNU Wget 1.16.
sampablokuper

0
wget -R "*?action=*"

Це виключає все, що міститься ?action=в його назві.


3
"Також зауважте, що рядки запиту (рядки в кінці URL-адреси, що починається із знаку питання ("? ") Не включаються до складу імені файлу для правил прийняття / відхилення, навіть якщо вони фактично сприяють вибраному імені) . для локального файлу очікується , що версія майбутнє Wget надасть можливість вирішити зіставлення з рядка запиту «.
Tie-винищувач

Хм, я, мабуть, пропустив це. Схоже, ви не можете цього зробити з wget, якщо він навіть не знає, що це різні файли. Я пропоную іншу програму.
Daisetsu

-3

Я б сказав, що вилучення загальнодоступного вікі-сайту - це погана практика, оскільки це додає додаткового навантаження на нього.

Якщо вікі є загальнодоступним, а власники сайтів не проти ділитися вмістом, вони зазвичай надають завантажуваний завантажувальний файл (база даних чи будь-який інший). Отже, ви просто завантажите пакет даних, встановіть локальний екземпляр того ж двигуна wiki, імпортуєте в нього дані та отримаєте локальну копію. Після цього, за бажанням, ви можете робити п'явку місцево.


є -w секунд. наприклад -w 5. gnu.org/software/wget/manual/html_node/…
barlop
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.