trad Δημοσ. 15 Σεπτεμβρίου 2003 Δημοσ. 15 Σεπτεμβρίου 2003 ΑΥΤΟ ΠΟΥ ΘΕΛΩ ΝΑ ΚΑΝΩ ΕΙΝΑΙ ΕΝΑ ΠΡΟΓΡΑΜΜΑΤΑΚΙ ΠΟΥ ΑΝΟΙΓΕΙ ΜΙΑ ΣΕΛΙΔΑ ΚΑΙ ΝΑ ΤΗ ΔΙΑΒΑΖΕΙ ΨΑΧΝΟΝΤΑΣ ΣΤΟ ΤΕΧΤ ΤΗΣ ΓΙΑ ΚΑΤΙ. ΜΙΑ ΠΡΩΤΗ ΣΚΕΨΗ ΜΟΥ ΗΤΑΝ ΝΑ ΤΗ ΣΩΖΕΙ ΣΕ ΤΧΤ ΚΑΙ ΜΕΤΑ ΝΑ ΤΗ ΔΙΑΒΑΖΕΙ. ΕΛΑ ΟΜΩΣ ΠΟΥ ΘΕΛΩ ΝΑ ΨΑΞΩ ΚΑΜΙΑ 30ΑΡΙΑ ΣΕΛΙΔΕΣ. ΤΙ ΝΑ ΚΑΝΩ? ΝΑ ΒΑΛΩ ΤΟΝ ΙΕ ΝΑ ΑΝΟΙΓΕΙ ΤΗ ΜΙΑ ΣΕΛΙΔΑ ΠΙΣΩ ΑΠΟ ΤΗΝ ΑΛΛΗ ΚΑΙ ΝΑ ΣΩΖΩ? ΠΑΝΤΩΣ, ΑΚΟΜΑ ΚΙ Σ' ΑΥΤΟ ΝΑ ΚΑΤΑΛΗΞΩ, ΔΕΝ ΓΝΩΡΙΖΩ ΠΩΣ ΘΑ ΤΟ ΦΤΙΑΞΩ. ΚΑΜΙΑ ΙΔΕΑ? ΥΠΑΡΧΕΙ ΚΑΠΟΙΟΣ ΠΟΥ ΝΑ ΕΧΕΙ ΚΑΝΕΙ ΚΑΤΙ ΑΝΑΛΟΓΟ?
drm Δημοσ. 15 Σεπτεμβρίου 2003 Δημοσ. 15 Σεπτεμβρίου 2003 Κατ' αρχάς θα μπορούσες να μην γράφεις με κεφαλαία. (εκτός απο κουραστικό, σημαίνει οτι φωνάζεις και δεν είναι τόσο ευγενικό αυτό). Τώρα όσον το πρόβλημά σου, για να το κάνεις προγραμματιστικά, είναι σχετικά σύνθετο (και άρα δύσκολο, ειδικά άμα δεν έχεις εμπειρία). Από ότι καταλαβαίνω, δεν ξέρεις προγραμματισμό, έτσι δεν είναι ? Αν έχεις ιδέα απο Delphi, πάντως μπορώ να σου δώσω δυο-τρεις ρουτίνες που αν τις συνδιάσεις, θα κάνουν αυτό που θές, αν και δεν είναι τοσο απλό όσο ακούγετε....
trad Δημοσ. 15 Σεπτεμβρίου 2003 Μέλος Δημοσ. 15 Σεπτεμβρίου 2003 Καταρχίν, δεν φωνάζω απλώς έτσι έτυχε με τα κεφαλαία, Δεύτερον ξέρω php, C και C++, λιγάκι java και γι' αυτό ρωτάω. Αν δεν ήξερα τίποτα απ' ολα αυτά δεν θα ρωτούσα τίποτα, θα πήγαινα για ύπνο . Περιμένω συνέχεια
drm Δημοσ. 15 Σεπτεμβρίου 2003 Δημοσ. 15 Σεπτεμβρίου 2003 Έχεις δουλέψει καθόλου Visual Programming (C++ Builder, Delphi) έχω κώδικα που κάνει την δουλεία. Δοκίμασε να χρησιμοποιήσείς τις ρουτίνες του WinInet, που κάνουν την δουλεία και είναι πολύ πιο απλές απο τα Socket (είναι ένα επίπεδο επάνω). Παρακάτω παραθέτο κώδικα σε Delphi, που επιστρέφει μία σελίδα σε txt (String). Χωρίς τις φωτογραφίες.... Αν έχεις κάποια απορία μπορείς να με ρωτήσεις είτε απο έδω είτε με κάνα εμαιλ. > function ReadUrl(const url : String) : String; const AgentName = 'Microsoft Internet Explorer'; var hINet, hFile : HINTERNET; tmp : String; Readed : DWORD; AnsiURL : AnsiString; Buffer : Array[0..1023] of Char; begin hINet := InternetOpen(AgentName, INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); try if hINet = nil then Raise Exception.Create('Fail to Execute Internet Open'); AnsiURL := url; hFile := InternetOpenURL(hINet, PAnsiChar(AnsiURL), nil, 0, 0, 0); try if hFile = nil then Raise Exception.Create('Fail to Execute Internet Open URL:' + URL); Result := ''; repeat InternetReadFile(hFile, @Buffer[0], 1024, Readed); SetString(tmp, Buffer, Readed); Result := result + tmp; until Readed < 1024; finally InternetCloseHandle(hFile); end; finally InternetCloseHandle(hINet); end; end; Βέβαια για να τα χρησιμοποιείσεις αυτά θα πρέπει να κάνεις κάποιο include και άν δεν χρησιμοποιήσης C++ Builder να αλλάξεις το TStringList με απλό string.
trad Δημοσ. 15 Σεπτεμβρίου 2003 Μέλος Δημοσ. 15 Σεπτεμβρίου 2003 OXI DELPHI φίλε προς Θεού!!! Πάμε σε C++ λίγο πιο αναλυτικά? (Visual 6.0)
mkst Δημοσ. 15 Σεπτεμβρίου 2003 Δημοσ. 15 Σεπτεμβρίου 2003 Χμμμ ειπες την μαγική λέξη!!! Δοκιμασε αυτο για αρχη: > <?PHP $fd=fopen("http://www.insomnia.gr/","r"); while ($line=fgets($fd,1000)) { $alltext.=$line; } fclose ($fd); echo $alltext; ?> ΜΕτά κάνεις ένα >strstr($alltext,'το στρινγκ που ψαχνεις') και τελειωσες! Δες εδω για παραπανω: http://php.gr/manual/en/function.fopen.phphttp://php.gr/manual/en/function.preg-match.php
trad Δημοσ. 15 Σεπτεμβρίου 2003 Μέλος Δημοσ. 15 Σεπτεμβρίου 2003 πολύ ωραία μέχρι εδώ mkst. thanks! Το μόνο που μου λείπει ακόμα (εκτός απο 600.000 ευρώ και μια φοβερή γυναικάρα) είναι το όνομα μιας function που αφού βρει τη λέξη που ψάχνουμε να διαβάσει και να αποθηκεύσει την αμέσως επόμενη. Μόνο ένα (ή περισσότερα) ονόματα functions δόσε μου και μ' έκανες άνθρωπο...:)
mkst Δημοσ. 15 Σεπτεμβρίου 2003 Δημοσ. 15 Σεπτεμβρίου 2003 Den prepei na yparxei kati tetoio etoimo....des kai sto site pou sou edwsa, alla mallon prepei na to ftiakseis esi kapws etsi: Kane: 1) elegxo me to strstr() se ka8e $line 2) an breis match kaneis split() to $line sta spaces. Tote an to $array einai match, to $array[i+1] einai h leksi pou psaxneis. Sigoura tha iparxei kai kapoios grigoroteros tropos, skepsou to ligo.....
trad Δημοσ. 16 Σεπτεμβρίου 2003 Μέλος Δημοσ. 16 Σεπτεμβρίου 2003 Ρε συ mkst τρέχω το σκριπτάκι απο command line (php c:\.....\x.php) και παίρνω τα εξής μηνύματα: <br /> <b>Warning</b>: php_network_getaddresses: gethostbyname failed in <b>c:\php\dok imi\x.php3</b> on line <b>2</b><br /> <br /> <b>Warning</b>: fopen("http://www.insomnia.gr/", "r") - No error in <b>c:\php\d okimi\x.php3</b> on line <b>2</b><br /> <br /> <b>Warning</b>: fgets(): supplied argument is not a valid File-Handle resource in <b>c:\php\dokimi\x.php3</b> on line <b>3</b><br /> <br /> <b>Warning</b>: fclose(): supplied argument is not a valid File-Handle resource in <b>c:\php\dokimi\x.php3</b> on line <b>9</b><br /> <br /> <b>Warning</b>: open(c:\temp\sess_78bf851e7671012ee3127d48ab5a743b, O_RDWR) fai led: No such file or directory (2) in <b>Unknown</b> on line <b>0</b><br /> <br /> <b>Warning</b>: Failed to write session data (files). Please verify that the cu rrent setting of session.save_path is correct (c:\temp) in <b>Unknown</b> on lin e <b>0</b><br /> Το C:\temp υπάρχει και τα session είναι ανοιχτά στο php.ini. Επίσης έχω 1 το fopen() στο php.ini!!! Το τρέχω βέβαια μέσα απο δίκτυο (απο υπολογιστή σε domain) που κάποιες λειτουργίες είναι κλειδωμένες. Βλέπεις κανα προγραμματιστικό τερτίπι στα warnings ή να δοκιμάσω και απο αλλού?
mkst Δημοσ. 16 Σεπτεμβρίου 2003 Δημοσ. 16 Σεπτεμβρίου 2003 exeis firewall? dokimase na baleis ip anti gia url... px. bale http://66.218.71.198/ anti to insomnia 'h ena allo ip pou sou bgazei omws selida ston exlporer Episis, an to problima exei na kanei me to dns mono, isws iparxei lisi. Iparxei auto to arxeio (C:\WINNT\system32\drivers\etc\hosts) pou orizeis ip kai domains. Isws aksizei ton kopo na to tsekareis....pes telika ti kataferes...
javanidhs Δημοσ. 16 Σεπτεμβρίου 2003 Δημοσ. 16 Σεπτεμβρίου 2003 OXI DELPHI φίλε προς Θεού!!! xaxaxax!megale egrapses!
trad Δημοσ. 17 Σεπτεμβρίου 2003 Μέλος Δημοσ. 17 Σεπτεμβρίου 2003 To δοκίμασα απο το σπίτι και δούλεψε μια χαρά. mkst thanks a lot! Τελικά, πάντως, δεν έψαξα τα string αφού αυτό που έρχεται γραμμή-γραμμή είναι ο κώδικας html της σελίδας (όπως θα γνωρίζεις) και είναι λίγο δύσκολο να κάτσω να τον καθαρίσω. Πιο εύκολο είναι να στέλνω έξοδο σε ένα αρχείο html και να το σώσω έτσι. Εντομεταξί έχω εντοπίσει τις γραμμές (1η, 17η-25η, ...) που έχουν την πληροφορία που θέλω και τραβάω μόνο αυτές, με μια μικρή παραλαγή στον κώδικα που μου έδοσες. Μετά με κανα-δύο echo "html code" διορθώνω την html (κλείνω έναν πίνακα, για παράδειγμα, του οποίου την αρχή <table> την παίρνω αλλά δεν παίρνω το </table> γιατί είναι πολύ χαμηλότερα στη σελίδα, σε γραμμή που δεν χρειάζομαι) και τελικά βγαίνει ένα πολύ ωραίο αποτέλεσμα σε html με την κατάταξη επιλεγμένων απο εμένα sites όπως αυτή είναι στο Korinthorama. mkst ευχαριστώ πολύ για τη βοήθεια. ΥΓ. Αρχικά προσπάθησα να το κάνω στο alexa (μετρήσεις του http://www.alexa.com) όμως είναι το μόνο site το οποίο αρνήθηκε να μου δόσει τον κώδικα της σελίδας, παρά έβγαζε κάποια πολύ ενδιαφέροντα-παράξενα μηνύματα που θα τα κάνω post μόλις πάω σπίτι να τα δείτε και να το συζητήσουμε λιγάκι
mkst Δημοσ. 17 Σεπτεμβρίου 2003 Δημοσ. 17 Σεπτεμβρίου 2003 Τελικά, πάντως, δεν έψαξα τα string αφού αυτό που έρχεται γραμμή-γραμμή είναι ο κώδικας html της σελίδας (όπως θα γνωρίζεις) και είναι λίγο δύσκολο να κάτσω να τον καθαρίσω....... Afou sou douleuei eisai kirile... :wink: , alla sto lew just in case...iparxei h strip_tags() h opoia afairei ta html tags. Des edw gia info: http://php.gr/manual/en/function.strip-tags.php
dominant Δημοσ. 18 Σεπτεμβρίου 2003 Δημοσ. 18 Σεπτεμβρίου 2003 Einai to legomeno web fetching http://www.hotscripts.com/PHP/Tips_and_Tutorials/Web_Fetching/index.html
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.