Jak czołgać się za pomocą wget, aby pobierać TYLKO pliki HTML (ignoruj ​​obrazy, css, js)

14

Zasadniczo chcę zaindeksować całą witrynę za pomocą Wget, ale potrzebuję tego, aby NIGDY nie pobierać innych zasobów (np. Zdjęć, CSS, JS itp.). Chcę tylko pliki HTML.

Wyszukiwania w Google są całkowicie bezużyteczne.

Oto polecenie, które próbowałem:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Nasza strona to hybrydowe płaskie PHP i CMS. Tak, HTML "plików" może być /path/to/page, /path/to/page/, /path/to/page.php, lub /path/to/page.html.

Dołączyłem nawet, -R js,cssale nadal pobiera pliki, TO je odrzuca (bezcelowe marnowanie przepustowości, procesora i obciążenia serwera!).

Nathan JB
źródło
2
Jakiego polecenia próbowałeś do tej pory? Jeśli nazwy plików są spójne, powinieneś móc użyć flagi -R. Alternatywnie możesz użyć flagi --ignore-tags i zignorować tagi skryptowe i img.
ernie
Naprzeciw:
wyklucz
Próbowałem użyć --accept = html, ale pobiera pliki CSS, a następnie usuwa je. Chcę zapobiec ich pobieraniu. Żądanie nagłówków jest w porządku - np. Zauważam, że Length: 558 [text/css]nie chcę plików. Gdybym mógł zatrzymać żądanie, jeśli nagłówek nie zwróci się text/html, byłbym szczęśliwy.
Nathan JB

Odpowiedzi:

13

Komentarz @ ernie na temat --ignore-tagsprowadzenia mnie właściwą ścieżką! Kiedy spojrzałem --ignore-tagsw góręman zauważyłem --follow-tags.

Ustawienie --follow-tags=apozwoliło mi pominąć img,link , script, itd.

Jest to prawdopodobnie zbyt ograniczone dla niektórych osób szukających tej samej odpowiedzi, ale w rzeczywistości działa dobrze w moim przypadku (w porządku, jeśli przegapię kilka stron).

Jeśli ktoś znajdzie sposób, aby zezwolić na skanowanie WSZYSTKICH tagów, ale uniemożliwi wgetodrzucanie plików dopiero po ich pobraniu (powinien odrzucić na podstawie nazwy pliku lub nagłówka Typ zawartości przed pobraniem), bardzo chętnie zaakceptuję ich odpowiedź!

Nathan JB
źródło
5

co z dodaniem opcji:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Spir
źródło