Σελίδα 1 από 1

Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 19 Μάιος 2008, 16:01
από Dimitris
Oδηγός wget

Το wget είναι ένα πρόγραμμα για συλλογή δεδομένων από το διαδίκτυο, το οποίο μπορεί να εκτελεστεί και στο υπόβαθρο (background). Αυτό σημαίνει ότι ο χρήστης μπορεί ακόμη και να αποσυνδεθεί από το σύστημα ενώ η εντολή wget θα συνεχίσει να εκτελείται.

Το wget μπορεί να δημιουργήσει τοπικές εκδόσεις μιας ιστοσελίδας, αναπαράγωντας πλήρως τη δομή των φακέλων της αρχικής ιστοσελίδας. Μπορεί επίσης να μετατρέψει τους συνδέσμους της ιστοσελίδας σε τοπικά αρχεία HTML για αναφορά σε εκτός σύνδεσης κατάσταση.

Στο σημείο αυτό πρέπει να τονίσω ότι η δυνατότητα του να κατεβάζει κανείς δεδομένα από το διαδίκτυο από τη γραμμή εντολών σημαίνει ότι μπορεί να ενσωματωθεί σε ένα αρχείο εντολών κελύφους (script) και να εκτελεσθεί αυτόματα. Αυτό επιτρέπει την κατάχρηση ιστοσελίδων, που μπορεί να οδηγήσει στην κατάρρευσή τους. Αρά δεν ειναι αποδεκτή μια τέτοια χρήση και προτείνεται να γίνεται πάντα με μέτρο. Γι'αυτό στον οδηγό αυτό δε θα χρησιμοποιηθεί καμία ιστοσελίδα ως παράδειγμα αλλά πάντα η λέξη "url". Σε όλα τα παραδείγματα μπορείτε να αντικαταστήσετε τη λέξη url με οποιαδήποτε ιστοσελίδα όπως για παράδειγμα http://www.google.com ή http://forum.ubuntu-gr.org.

Όπως η περισσότερες εντολές η επιλογή -V ή --version τυπώνει την έκδοση του wget, ενώ η επιλογή -h ή --help τυπώνει ένα μήνυμα βοηθειας με όλες τις επιλογές του wget.

Αλλά ας περάσουμε σε ένα πολύ απλό παράδειγμα. Η παρακάτω εντολή

Κώδικας: Επιλογή όλων
wget url


θα κατεβάσει την ιστοσελίδα url στο φάκελο στον οποίο εκτελέσθηκε και θα την αποθηκεύσει στο αρχείο index.html. Όπως θα παρατηρήσετε, αποθηκεύτηκε μεν η ιστοσελίδα αλλά όχι όλες οι απαραίτητες πληροφορίες ώστε να είναι πλήρως εμφανίσιμη και όταν δεν είστε συνδεδεμένοι.

Σε περίπτωση που δε βρεθεί η ιστοσελίδα τότε θα εμφανιστεί ένα μήνυμα λάθους "Resolving url... failed: Host not found." Aν επιθυμείτε να προωθείσετε τα μηνύματα της εντολής wget σε ένα αρχείο τότε με την επιλογή -ο logfile όλα τα μηνύματα αποθηκεύονται στο αρχείο logfile.

Κώδικας: Επιλογή όλων
wget url -o mylog


Αντί να δημιουργεί κάθε φορά καινούριο αρχείο μηνυμάτων, με την επιλογή -a logfile τα μηνύματα γράφονται στο τέλος του αρχείου logfile. Αν το αρχείο δεν υπάρχει τότε δημιουργείται ενα καινούριο. Φυσικά όλα τα μηνύματα μπορούν να κατασταλλούν με την επιλογή -q ή --quiet.

Αν θελετε να κατεβάσετε με μία εντολή από πολλές ιστοσελίδες τότε μπορείτε να γράψετε όλες τις ιστοσελίδες σε ένα αρχείο εισόδου, για παραδειγμα το αρχείο myinput μπορεί να περιλαμβάνει

url1
url2
url3

Τότε η εντολή

Κώδικας: Επιλογή όλων
wget -i myinput -a mylog


θα διαβάσει από το αρχείο εισόδου myinput όλες τις ιστοσελίδες που θα δεί, δηλαδή τις url1, url2, url3, και θα τις κατεβάσει γράφοντας όλα τα μηνύματα στο αρχειό mylog.

Το προεπιλεγμένο αρχείο εξόδου όπως είπαμε είναι το index.html. Αυτό μπορεί να αλλαχτεί με την επιλογή -Ο file. Προσοχή: είναι κεφαλαίο αγγλικό ο και όχι μηδέν!!!

Κώδικας: Επιλογή όλων
wget url -O myurl.html


Η παραπάνω εντολή θα αποθηκεύσει την ιστοσελίδα url στο αρχείο myurl.html.

Σε περίπτωση που η ιστοσελίδα περιέχει εικόνες, τότε η εντολή πρέπει να εκτελεσθεί με την επιλογή -k ή --convert-links ώστε να είναι αυτές διαθέσιμες και για τοπική χρήση. Μια άλλη επιλογή είναι η -m ή --mirror, η οποία δημιουργεί ένα κατοπτρικό αντίγραφο της ιστοσελίδας. Η επιλογή αυτή ενεργοποιεί, εκτός των άλλων, την αναδρομική επιλογή -r ή --recursive. To βάθος της αναδρομής οριζεται:

Κώδικας: Επιλογή όλων
-l depth


όπου η προεπιλεγμένη τιμή για το depth είναι 5.

H επιλογή -b ή --background θέτει την εντολή στο υπόβαθρο αμέσως μετά την εκκίνησή της. Εάν δεν έχει οριστεί αρχείο εξόδου μέσω της επιλογής -o, τότε το αποτέλεσμα προωθείται στο αρχειό wget-log. Θα παρατηρήσετε ότι με αυτή την εντολή, ο ελέγχος επιστρέφεται αμέσως στη γραμμή εντολών, μαζί με το pid (process identity) της διαδικασίας που ξεκίνησε. Αν ο χρήστης αποσυνδεθεί τότε η διαδικασία αυτή θα συνεχίσει να τρέχει.

Και φυσικά είναι δυνατό τα cookies να ενεργοποιηθούν --cookies=on ή και να απενεργοποιηθούν --cookies=off.

Βιβλιογραφία

Manual pages: wget

Re: Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 22 Σεπ 2008, 13:07
από taratatzoum
Αυτό επιτρέπει την κατάχρηση ιστοσελίδων


τι εννοούμε κατάχρηση ιστοσελίδων;
πχ το προσωπικό μου site στο server που έχω σπίτι , τι μπορεί να πάθει;

Re: Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 22 Σεπ 2008, 14:18
από sudobash
Μερικά χρήσιμα flags για το download ενός ολόκληρου website (πχ. για περίπτωση κάποιου multi html page tutorial)

Κώδικας: Επιλογή όλων
wget     --recursive     --domains example.com     --no-parent     --page-requisites     --html-extension     --convert-links         www.example.com/tutorials/python/


--recursive: αναδρομικό download για να σαρώσει όλο το site
--domains example.com: να μείνει μόνο στο domain example.com
--no-parent: να μην πάει σε γονικούς φακέλους
--page-requisites: να κατεβάσει και όλα τα απαραίτητα για τη σελίδα αρχεία (πχ. CSS και εικόνες)
--html-extension: να αποθηεκεύσει τα αρχεία σαν html σελίδες
--convert-links: να μετατρέψει τα links ώστε να δείχνουν τοπικά για χρήση offline (όχι πχ στο example.com)

Η χρήση του να γίνει προσεχτικά! Μην κατεβάσετε και όλο το ίντερνετ! :)

Re: Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 22 Σεπ 2008, 15:28
από gourgi
εναλλακτικό για websites είναι το WebHTTrack
WebHTTrack

Re: Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 12 Μαρ 2010, 15:19
από Kasious
σε script πως μπορώ με την wget να επιτρέπω στον χρήστη να επιλέγει το url ;

δηλ. αν έχουμε : wget url -o mylog

τι πρέπει να κάνουμε ώστε ο χρήστης να επιλέγει το url ;

Re: Σύντομος οδηγός wget

ΔημοσίευσηΔημοσιεύτηκε: 01 Μάιος 2010, 12:39
από elefher
Παιδιά θα ήθελα να μάθω πως μπορώ να κατεβάσω ενα αρχείο π.χ. το flash player μέσο τερματικού με τη wget.Δοίμασα με wget -c url αλλα μου κατεβάζει μόνο τη σελίδα και όχι το αρχείω που θέλω εγώ. Έψαξα στη man αλλά δεν έβγαλα άκρη .Όποιος μπορεί ας βοηθύση.Ευχαριστώ