RSS

Tag Archives: web

Eξαγωγη στοιχειων/πληροφοριων απο ιστοσελιδες με bash script

Δυστυχως, αυτο που φοβουνται οι περισσοτεροι, οταν ξεκιναν να ασχολουνται με το Unix/Linux/Ubuntu, ειναι και το πιο δυνατο ατου που εχει… αναφερομαι στο τερματικο. Ειναι δυσκολο, αλλα αν το μαθεις, σου λυνονται τα χερια. Μπορεις να κανεις "περιεργα/τρελα" πραγματα, που δεν τα κανεις ουτε με το καλυτερο γραφικο περιβαλλον. Σε αυτο το tutorial, θα δουμε πως μπορουμε να εξαγουμε στοιχεια απο ιστοσελιδες που μας ενδιαφερουν. Μπορειτε πχ να εξαγετε τον καιρο μιας τοποθεσιας και να σωζετε τις πληροφοριες αυτες σε ενα αρχειο ή να τις εμφανιζετε στο desktop σας… μπορειτε να παρακολουθειτε μετοχες, top ten λιστες απο διαφορα sites και θεματα… και οτι αλλο σκεφτειτε.

Εδω, για λογους συντομιας και απλοτητας, θα φτιαξουμε ενα script το οποιο θα περνει απο μια ιστοσελιδα πληροφοριες για το ζωδιο μας. Η λογικη ειναι πανω-κατω ιδια και για αλλες περιπτωσεις, οποτε αν το θεμα σας φενεται αστειο, μην σταματησετε να διαβαζετε.

Καταρχας βρισκουμε την ιστοσελιδα που ενδιαφερει και ανοιγουμε να δουμε τον πηγαιο κωδικα της (source code). Aυτο στο firefox γινεται, πατωντας Control + U. Aφου ανοιξει το παραθυρο με τον κωδικα, τον κοιταμε προσεκτικα και ψαχνουμε να βρουμε καποιο κομματι κειμενου ή κωδικα που ειναι μοναδικο στην ιστοσελιδα και ειναι ακριβως διπλα στο κειμενο που θελουμε να εξαγουμε. Θελουμε δηλαδη να βρουμε κατι χαρακτηριστικο που να δηλωνει που ειναι το κειμενο που ψαχνουμε. Η ιστοσελιδα που θα παρουμε τα στοιχεια μας ειναι η: http://www.psychicguild.com/Daily-Horoscope/Scorpio. Ανοιξτε τον κωδικα της και θα δειτε οτι διπλα στις πληροφοριες που θελουμε να παρουμε, εχει ενα ξεχωριστο κομματι κωδικα που ειναι μοναδικος σε ολη την σελιδα: <div id="now2" style="">

Οποτε, καταρχας πρεπει να αποθηκευσουμε την σελιδα, τοπικα, στον υπολογιστη μας. Αυτο το κανουμε δινοντας την εντολη wget ετσι:

wget -O scorpio.txt http://www.psychicguild.com/Daily-Horoscope/Scorpio

Οπου scorpio.txt το ονομα του αρχειου που θελουμε να αποθηκευσουμε την σελιδα και μετα βαζουμε και την διευθυνση της ιστοσελιδας. Περιμενουμε και βλεπουμε οτι ο υπολογιστης σωζει την συγκεκριμενη ιστοσελιδα.

Για να εξαγουμε το κομματι με τις πληροφοριες, χρησιμοποιουμε την εντολη grep. Με την εντολη αυτη βρισκουμε ενα κομματι κειμενου μεσα σε ενα αρχειο. Οποτε για να εξαγουμε τις πληροφοριες μας δινουμε:

grep '<div id="now2" style="">' scorpio.txt

Αυτο θα μας τυπωσει ολη την σειρα κειμενου, μαζι με τον κωδικα HTML. Εμεις ομως θελουμε μονο το κειμενο, χωρις τον κωδικα HTML. Oποτε πρεπει να τον αφαιρεσουμε. Για να γινει αυτο, χρησιμοποιουμε την εντολη sed. H εντολη sed, αντικαθιστα ενα κομματι κειμενου, με ενα αλλο που θελουμε. Εμεις εδω θελουμε να αφαιρεσουμε τα HTML codes, τα οποια ολα, ξεκινανε και τελειωνουν με τους χαρακτηρες < και >. Ετσι θα χρησιμοποιησουμε την εντολη sed με ενα regular expression, το οποιο βρισκει τα HTML tags και θα τα αφαιρεσουμε. Δινουμε λοιπον την παρακατω εντολη:

sed -e 's/<[a-zA-Z\/][^>]*>//g' scorpio.txt

Στην οθονη θα μας τυπωθει το κειμενο της ιστοσελιδας χωρις τα HTML tags. Αλλα… μας τυπωνει ολη την ιστοσελιδα…και οχι μονο το κομματι που θελουμε. Αυτο γινετε γιατι με την προηγουμενη εντολη (την grep) παρολο που μας τυπωσε στην οθονη το κειμενο που θελαμε, στο αρχειο scorpio.txt δεν εγινε καμμια μεταβολη. Δεν σωσαμε τιποτα, απλα το εμφανισαμε στην οθονη μας. Πως λοιπον τωρα με την εντολη sed θα αντικαταστισουμε τα HTML tags μονο στο κομματι που θελουμε;;; Θα χρησιμοποιησουμε pipes! Tο pipe ειναι, ας πουμε, μια εντολη η οποια περνει την εξοδο μιας εντολης (το κειμενο που εμφανιζει δηλαδη) και το στελνει ως εισαγωγη στην επομενη εντολη.

Για να αντικαταστησουμε τα HTML tags μονο στο κομματι του αρχειου που θελουμε δινουμε την παρακατω εντολη:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g'

Τι κανουμε… πρωτα βρισκουμε το σημειο του κειμενου με την εντολη grep και μετα με το pipe (ο χαρακτηρας | ) περναμε την εξοδο της grep σαν εισοδο στην sed. Eτσι τωρα η sed δεν χρειαζετε να τις πουμε το ονομα του αρχειου οπως πριν (sed -e 's/<[a-zA-Z\/][^>]*>//g' scorpio.txt). Ετσι μας δινετε τωρα σαν εξοδο, το κομματι κειμενου που θελουμε, χωρις τα HTML tags.

Oμως, δεν τελειωσαμε. Αν παρατηρησετε, στο κειμενο εμφανιζονται και κατι ειδικοι χαρακτηρες και πολλα κενα (&#8217,&#8211 κτλ). Δεν ειναι ωραια να τα βλεπουμε… οποτε θα τα αφαιρεσουμε και παλι με την εντολη sed. Oποτε δινουμε:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g'

Oπως βλεπετε, συνεχιζουμε και προσθετουμε pipes, μεχρι να φτασουμε το τελικο κειμενο στην μορφη που θελουμε. Ενα τελευταιο βημα που θα κανουμε, ειναι να αφαιρεσουμε το κενο που εχει στην αρχη το κειμενο μας, το οποιο ειναι απλα tabs. Aυτο γινετε με την εντολη sed ‘s/[\t]//g’ οποτε η τελικη μας εντολη θα γινει ετσι:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' | sed 's/[\t]//g'

Αν θελουμε να το σωσουμε σε ενα αρχειο, θα δωσουμε την παραπανω εντολη προσθετωντας το συμβολο > με το ονομα του αρχειου που θελουμε να σωθει καπως ετσι:

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' > scorpios.txt

Αν θελουμε να το κανουμε ολο αυτο, ενα script θα γινει ετσι:

#!/bin/sh

wget -O scorpio.txt http://www.psychicguild.com/Daily-Horoscope/Scorpio

grep '<div id="now2" style="">' scorpio.txt | sed -e 's/<[a-zA-Z\/][^>]*>//g' | sed -e 's/’//g' | sed -e 's/–//g' > scorpios.txt

H βασικη αρχη και σκεψη ειναι ιδια παντου. Καθε ιστοσελιδα εχει διαφορετικη δομη, οποτε πρεπει να αλλαξετε τις εντολες αναλογα. Τα βασικα εργαλεια ειναι οι εντολες wget, sed και grep. Αλλα δεν ειναι μονο αυτες. Οσο ψαχνετε τις εντολες του τερματικου, τοσο θα τελειοποιητε τον κωδικα σας και τις ικανοτητες σας. Μπορειτε να βρειτε scripts απο το Internet και να διαβασετε τον κωδικα τους για να δειτε και αλλα παραδειγματα.

 

Ετικέτες: , , , , , ,

Διαχειριστητε το Windows Mobile κινητο σας απο τον Web Browser

Μεχρι τωρα για να δειτε αρχεια που βρισκονται στο κινητο σας ή να διαβασετε SMS να στειλετε ή να λαβετε αρχεια, επρεπε να εχετε Windows και να συνδεεστε μεσω Active Sync.

Ευτυχως ομως για μας τους Linuxαδες βρεθηκε και αλλος τροπος. Εγκαθηστατε την εφαρμογη που θα βρειτε εδω. Πριν ανοιξετε την εφαρμογη σιγουρευτειτε οτι εχετε μια συνδεση στο Internet μεσω wifi και το κινητο σας ειναι συνδεδεμενο. Ανοιγετε την εφαρμογη, δινετε το password που θελετε να ορισετε ως κωδικο ασφαλειας για τις συνδεσεις και πατατε το κουμπι enable. Τωρα ανοιξτε τον αγαπημενο σας browser στον υπολογιστη και συνδεθειτε στην IP που φενετε στο κινητο σας.

Καλη περιηγηση…!!!

 
Σχολιάστε

Posted by στο 18/04/2010 σε Hints & Tips

 

Ετικέτες: , , , , , , , ,

Δειτε την web camera σας, μεσα απο τον MPlayer

Δωστε στο τερματικο την παρακατω εντολη και δειτε την εικονα απο την webcamera σας, μεσα απο τον mplayer.

mplayer -cache 128 -tv driver=v4l2:width=640:height=480 -vo xv tv://

 
Σχολιάστε

Posted by στο 14/03/2010 σε Hints & Tips

 

Ετικέτες: , , ,

Χρησιμα προγραμματα ή τι να κανετε με το terminal

Μπορει το terminal να σας φενεται δυσκολο και να το αποφευγετε, αλλα ειναι σιγουρο οτι πολλες φορες θα σας σωσει. Παρακατω δειτε μια λιστα εφαρμογων, που ειναι πολυ χρησιμα/διασκεδαστικα και γινονται ολα μεσα απο το τερματικο.

Internet Browsing – w3m

sudo apt-get install w3m+

Torrent Downloading

sudo apt-get install bittorrent

..για την εγκατασταση του πακετου και μετα για να κατεβασετε το torrent γραφετε:

btdownloadcurses [insert torrent_filename_url.torrent]

IRC Chatting

sudo apt-get install irssi

Για πληροφοριες εδω: http://www.irssi.org/

MP3 Playing – moc

http://moc.daper.net/download

Games

greed – sudo apt-get install greed

ninvaders – sudo apt-get install ninvaders

moon-buggy sudo apt-get install moon-buggy

bastetsudo apt-get install bastet

bsdgamessudo apt-get install bsdgames

myman – http://www.geocities.com/bsittler/

ski – http://www.catb.org/~esr/ski/

Robotfindskittensudo apt-get install robotfindskitten

quake – http://webpages.mr.net/bobz/ttyquake/

vitetris – http://victornils.net/tetris/

 
Σχολιάστε

Posted by στο 02/12/2009 σε Hints & Tips

 

Ετικέτες: , , , , , , ,