Website text extraction

...εφαρμογές για οτιδήποτε άλλο

Συντονιστής: konnn

Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 01:12

Καλησπερα σε ολους

θελω να ρωτησω αν καποιος μπορει να βοηθησει,

χρειαζομαι ενα προγραμμα (σε κονσολα) για linux (βασικα για centos θελω αλλα ειπα μηπως καποιος να ξερει) το οποιο θα μπορει να ανοιγει μια σελιδα και να κανει εξαγωγη καποια κομματια κειμενου και να τα αποθηκευει σε ενα txt αρχειο.

στα windows μπορω να το κανω με το firefox και το imacros οπου του γραφεις με tags τι θες να εξαγεις.

για να καταλαβετε καλυτερα θελω να μπαινει εδω http://www.metar.gr/?option=com_jumi&fi ... ation=1353

και να κανει extract την θερμοκρασια, να δημιουργει ενα txt αρχειο που θα περιέχει "Η θερμοκρασια ειναι {{θερμοκρασια}}" οπου {{θερμοκρασια}} να μπεινει η θερμοκρασια παραδειγμα 19.2 °C.
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό medigeek » 04 Οκτ 2010, 01:28

jim.christou έγραψε:να ανοιγει μια σελιδα και να κανει εξαγωγη καποια κομματια κειμενου και να τα αποθηκευει σε ενα txt αρχειο


Κώδικας: Επιλογή όλων
wget "www.example.com" -O myfile.txt
cat myfile.txt


Με την εντολή grep κάνεις εξαγωγή των κομματιών που θέλεις:
Κώδικας: Επιλογή όλων
grep -Pi 'text.*example' myfile.txt


Το grep δουλεύει με regular expressions.

Ακολουθώντας το παράδειγμα σου:
Κώδικας: Επιλογή όλων
wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C'

έγραψε:$ wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C'
19.2 °C
19.4 °C
19.2 °C


Εσένα σε ενδιαφέρει το πρώτο match, οπόταν:
Κώδικας: Επιλογή όλων
wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 1


Και θέλεις και το "Η θερμοκρασία είναι: ":
Κώδικας: Επιλογή όλων
variablex="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 1`"
echo "H θερμοκρασία είναι $variablex"


Για να το φυλάξεις σε αρχείο:
Κώδικας: Επιλογή όλων
variablex="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 1`"
echo "H θερμοκρασία είναι $variablex" > myfile.txt
cat myfile.txt
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 01:41

Σε ευχαριστω για την γρηγορη απαντηση σου !

Αυτο οντως μπορει να κανει εξαγωξη, αλλα εγω θελω να να κανει εξαγωγη μονο την τιμη της θερμοκρασιας και να τιν ωαζει μετα το τελος της προτασης. επισης στην συνεχεια θελω να βαλω κι αλλη προταση και να λεει την ενταση του ανεμου κλπ κλπ.

δεν γνωριζω πολλα πραγματα απο αυτες τις εντολες απο οτι καταλαβατε οποτε μην με κατακρινετε.

θελω να εχει τελικα την μορφη

"Η θερμοκρασία τώρα ειναι 16.1 °C ΜΕ ΜΕΓΙΣΤΟ 22.2 °C ΚΑΙ ΕΛΑΧΙΣΤΟ 14.9 °C
Η ταχύτητα του αέρα είναι 1.6 km/h - 1 Bf με κατεύθηνση Α"

Και μονο του να αντικαθηστα το Α με ΑΝΑΤΟΛΙΚΑ το Δ με ΔΥΤΙΚΑ κλπ....

ελπιζω να μην ζηταω πολλα!

Αυχαριστω και παλυ
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 01:59

δοκιμασα κατι τετοιο αλλα μαλλον δεν ειναι σωστο ε?

Κώδικας: Επιλογή όλων
variablecurr="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 1`"

variablemax="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 2`"

variablemin="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C' | head -n 3`"


echo "H θερμοκρασία είναι $variablecurr με μεγιστη $variablemax και ελαχιστη $variablemin" > myfile.txt


το
Κώδικας: Επιλογή όλων
cat myfile.txt

απαντα

Κώδικας: Επιλογή όλων
με μεγιστη 19.2 Β°C19.2 Β°C
και ελαχιστη 19.2 Β°C
19.4 Β°C
19.2 Β°C


τι κανω λαθος?

και ενα δευτερο πως μπορω να προσθετω κειμενο αντι να αντικαθιστω στο αρχειο αυτο?
almost there with your help!
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό medigeek » 04 Οκτ 2010, 11:46

1. Καλό θα ήταν να αρχίσεις να διαβάζεις για τις εντολές:
head: http://manpages.ubuntu.com/head
έγραψε:
-n number
The first number lines of each input file shall be copied to
standard output. The application shall ensure that the number
option-argument is a positive decimal integer.


Το head σου δίνει τις γραμμές από την αρχή, δηλαδή την πρώτη γραμμή, τις πρώτες 2 γραμμές, τις πρώτες 3 γραμμές κτλ.

2. Το wget κατεβάζει τη σελίδα. Αντί να κατεβάζεις τη σελίδα 3 φορές, είναι πιο γρήγορο να την κατεβάσεις μια φορά.

3. Θα χρησιμοποιήσουμε το "cut" για να διασπάσουμε το κείμενο σε κομμάτια που διαιρούνται με το χαρακτήρα "new line".

Κώδικας: Επιλογή όλων
thermokrasies="`wget -q 'http://www.metar.gr/?option=com_jumi&fileid=12&Itemid=73&station=1353' -O - | grep '°C'`"
proti=$(echo "$thermokrasies" | cut -d $'\n' -f 1)
deuteri=$(echo "$thermokrasies" | cut -d $'\n' -f 2)
triti=$(echo "$thermokrasies" | cut -d $'\n' -f 3)


Κώδικας: Επιλογή όλων
echo -e "Θερμοκρασία: $proti\nΜέγιστη: $deuteri\nΕλάχιστη: $triti" > myfile.txt
cat myfile.txt


Μερικές επεξηγήσεις:
cut: -d σημαίνει delimiter, ο χαρακτήρας με τον οποίο θα χωρίσουμε το κείμενο σε μέρη. -f σημαίνει field, ποιο μέρος του κειμένου θέλουμε. http://manpages.ubuntu.com/cut
$'\n' είναι ο new line χαρακτήρας, και κάποτε είναι ο μόνος τρόπος για να το θέσεις στο bash. Αλλιώς είναι συνήθως \n
` ... ` είτε $( ... ) -- Εκτελούν εντολές και αναφέρουν το αποτέλεσμα, αλλά με αυτά είναι εύκολο να προσθέσεις το αποτέλεσμα σε μεταβλητή/variable.

Μέχρι εδώ θα βοηθήσω όμως, την επόμενη φορά ελπίζω να κοιτάξεις τον οδηγό για αρχάριους: viewtopic.php?f=9&t=367 και ένα bash guide :)
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 12:47

medigeek έγραψε:
2. Το wget κατεβάζει τη σελίδα. Αντί να κατεβάζεις τη σελίδα 3 φορές, είναι πιο γρήγορο να την κατεβάσεις μια φορά.

Μέχρι εδώ θα βοηθήσω όμως, την επόμενη φορά ελπίζω να κοιτάξεις τον οδηγό για αρχάριους: viewtopic.php?f=9&t=367 :)


το wget το γνωριζω αλλα δεν ηξερα οτι μπορει να γινει κατι τετοιο, τον οδηγο τον κοιταξα αλλα δεν λεει τοσο εξειδικευμένα πραγματα και εκει ειναι που εχω το προβλημα.

Το καλο ειναι οτι τα εξηγεις αναλυτικα και καταλαβαινω ακριβως τι γινετε. δεν καταλαβαινω ομως γιατι αν του βαλο το εξης
Κώδικας: Επιλογή όλων
echo -e "Η Θερμοκρασία είναι: $proti Βαθμούς Κελσίου\nμε Μέγιστη θερμοκρασία $deuteri Βαθμούς Κελσίου\nκαι Ελάχιστη: $triti Βαθμούς Κελσίου"

μου απανταει
Κώδικας: Επιλογή όλων
Βαθμούς Κελσίουναι: 19.2 Β°C
Βαθμούς Κελσίουκρασία 19.4 Β°C
Βαθμούς Κελσίου.2 Β°C

παιρνει δηλαδή το κειμενο μετα την μεταβλητη και το βαζει στην αρχη της σειρας "τρογοντας" τα πρωτα.

τι κανω λαθος δεν εχω καταλαβει? υπαρχει καποιος ιδικός χαρακτήρας που μπαινει μετα την μεταβλητη?
και αν δεν γινομαι κουραστικος να ξανα ρωτησω πως μπορω αφου εχω φτιαξει το κειμενο να προσθεσω κι αλλες σειρες μετα?

Έστω και μεχρι εδω που με βοηθησες σε ευχαριστω πολυ. Ελπιζω να βοηθησεις λιγο ακομα.

Καλη μερα σε όλους
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό medigeek » 04 Οκτ 2010, 15:15

jim.christou έγραψε:
Το καλο ειναι οτι τα εξηγεις αναλυτικα και καταλαβαινω ακριβως τι γινετε. δεν καταλαβαινω ομως γιατι αν του βαλο το εξης

Κώδικας: Επιλογή όλων
echo -e "Η Θερμοκρασία είναι: $proti Βαθμούς Κελσίου\nμε Μέγιστη θερμοκρασία $deuteri Βαθμούς Κελσίου\nκαι Ελάχιστη: $triti Βαθμούς Κελσίου"


Μπορεί να υπαρχει πρόβλημα με το echo -e και UTF-8 χαρακτήρες.
Μια λύση θα ήταν να χρησιμοποιείς 3 διαφορετικά echo:

Κώδικας: Επιλογή όλων
echo "Η Θερμοκρασία είναι: $proti Βαθμούς Κελσίου" > myfile.txt
echo "με Μέγιστη θερμοκρασία $deuteri Βαθμούς Κελσίου" >> myfile.txt
echo "και Ελάχιστη: $triti Βαθμούς Κελσίου" >> myfile.txt


Το ">" σβήνει τα περιεχόμενα του αρχείου και γράφει στην πρώτη γραμμή.
Το ">>" δε σβήνει, αλλά προσθέτει στο τέλος μια καινούργια γραμμή.

Υπάρχει ένας πιο αναλυτικός οδηγός στα αγγλικά εδώ: http://tldp.org/LDP/abs/html/
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 15:40

Αγαπητέ medigeek

βρηκα το προβλημα αλλα δεν ξερω πως να το λυσω. Δινω
Κώδικας: Επιλογή όλων
echo "Η Θερμοκρασία είναι: $proti Βαθμούς Κελσίου" > myfile.txt

και μετα ανοιξα το myfile.txt με notepad απο windows (XP) και αυτο περιεχει το εξης:
Κώδικας: Επιλογή όλων
Η Θερμοκρασία είναι: 19.2 Β°C™#˜˜™™™™™™ Βαθμούς Κελσίου

(Βασικα οταν το κανω paste εδω δεν το βγαζει) εκει που εβαλα την # εμφανιζει ενα τετραγωνακι.
(υπαρχει περιπτωση να ειναι χαρακτηρας το κουμπι HOME και να παει στην αρχη και να τα σβηνει?)

οταν βαζω μετα την μεταβλητη κειμενο το εμφανιζει οταν η μεταβλητη ειναι το τελευταιο string δεν μπαινει το τετραγωνακι.

τι κανουμε εδω????
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό medigeek » 04 Οκτ 2010, 15:49

jim.christou έγραψε:με notepad απο windows (XP)

Μάλιστα, αυτό είναι άλλο πρόβλημα τοτε. :) Μην ξεχνάς πως ζήτησες προηγουμένως:
έγραψε:χρειαζομαι ενα προγραμμα (σε κονσολα) για linux (βασικα για centos θελω αλλα ειπα μηπως καποιος να ξερει)


Τελος παντων, το πρόβλημα λύνεται εύκολα. Το unix/linux έχουν διαφορετικό τρόπο για να ορίζουν το χαρακτήρα "new line".
Εγκατέστησε το tofrodos. Στο ubuntu υπάρχει το πακέτο:
Κώδικας: Επιλογή όλων
sudo apt-get install tofrodos
todos myfile.txt


Για centos δεν έχω ιδέα. Διάβασε εδώ: http://chrisjean.com/2009/03/08/convert ... nd-centos/
Μάλλον το πακέτο είναι unix2dos και η εντολή έμεινε unix2dos
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Website text extraction

Δημοσίευσηαπό jim.christou » 04 Οκτ 2010, 16:15

medigeek έγραψε:jim.christou έγραψε:
με notepad απο windows (XP)

Μάλιστα, αυτό είναι άλλο πρόβλημα τοτε. Μην ξεχνάς πως ζήτησες προηγουμένως:
χρειαζομαι ενα προγραμμα (σε κονσολα) για linux (βασικα για centos θελω αλλα ειπα μηπως καποιος να ξερει)

Οχι δεν καταλαβες για linux konsole το θελω και τα προβληματα που σου λεω στην κονσολα τα εμφανιζει απλα σκεφτικα να το ανοιξω με notepad για να δω τι ακριβως περιεχει αφου με nano μου τα εχει αλαμπουρνεζικα, και το ανακαλυψα.

οταν το κανω ειτε dos2unix ή unix2dos δεν αλλαζει τιποτα στην κονσολα, στα windows αλλαζει το τετραγωνακι σε enter. εμενα ομως οπως ειπα με ενδιαφερει η κονσολα του linux.

πως μπορω να αντικαθηστω το τετραγωνακι με <space> ωστε να εχω τελικα μια σειρα με αυτο που θελω? Υπαρχει τροπος?

Σε ευχαριστω και παλι.
jim.christou
babeTUX
babeTUX
 
Δημοσιεύσεις: 55
Εγγραφή: 17 Ιουν 2009, 16:13
Εκτύπωση

Επόμενο

Επιστροφή στο Εφαρμογές Άλλες-Διάφορες