koslibpro Δημοσ. 13 Σεπτεμβρίου 2012 Δημοσ. 13 Σεπτεμβρίου 2012 Καλημερα σε ολους, θελω να φτιαξω ενα script που θα λειτουργει ως web crawler και θα κανει parse τα e-mails απο ιστοσελιδες,που θα περιεχουν ομως συγκεκριμενα keywords (οι ιστοσελιδες). σκεφτομαι να το υλοποιησω σε php,αν ομως καποιος εχει να προτινει κατι αλλο ας το ακουσω.. επισης,οτι links ή πληροφοριες μπορειτε να μου δωσετε σχετικα με αυτο για να με βοηθησετε,ειναι ευπροσδεκτα. ευχαριστω εκ των προτερων
defacer Δημοσ. 13 Σεπτεμβρίου 2012 Δημοσ. 13 Σεπτεμβρίου 2012 Πως το εννοείς το "web crawler"? Γενικά για να κατεβάσεις το source μιας σελίδας χρησιμοποιείς είτε την file_get_contents() που είναι σούπερ εύκολη είτε τις συναρτήσεις curl όταν αν χρειάζεσαι παραπάνω έλεγχο στη διαδικασία. Μετά βρίσκεις ή γράφεις μια regular expression που κάνει match emails και με preg_match πάνω στο source παίρνεις τις διευθύνσεις. Ένα example πρόγραμμα που το κάνει αυτό και τυπώνει τα email είναι γύρω στις 5 γραμμές, οπότε δε θα δυσκολευτείς να ξεκινήσεις.
koslibpro Δημοσ. 13 Σεπτεμβρίου 2012 Μέλος Δημοσ. 13 Σεπτεμβρίου 2012 ναι.ηδη με τον τροπο που μου ειπες εχω φτιαξει ενα script που εισαγω ενα URL και μου βγαζει τα emails που υπαρχουν μεσα σε αυτην.οντως ο κωδικας ειναι αρκετα μικρος. απλα θελω να γινεται αυτοματα το "ψαξιμο" των ιστοσελιδων που εχουν τα συγκεκριμενα keywords και να γινονται parse απο αυτες τα emails.
defacer Δημοσ. 13 Σεπτεμβρίου 2012 Δημοσ. 13 Σεπτεμβρίου 2012 Και πώς ακριβώς θα γίνεται το ψάξιμο που λες; Άντε εισάγεις ένα URL και βλέπεις τα email. Γενικά πώς το φαντάζεσαι να δουλεύει για να ψάχνει πολλά URL; Και τι σημαίνει "ιστοσελίδες που έχουν keywords"; Οι σελίδες έχουν HTML, όχι keywords. Δε σου κάνω τις ερωτήσεις για να σε πρήξω αλλά για να σου δώσω να καταλάβεις ότι είναι απαραίτητες πληροφορίες τις οποίες πρέπει να δώσεις και μάλιστα με όσο περισσότερη ακρίβεια γίνεται, γιατί αυτές είναι που θα μεταφέρεις σε κώδικα.
IHateLove Δημοσ. 13 Σεπτεμβρίου 2012 Δημοσ. 13 Σεπτεμβρίου 2012 σε σελίδες του τύπου http://mitsos.gr/aggelies/card.php?id=1 μπορείς μια χαρά να φτιάξεις ένα ρομποτακι που θα τραβάει δεδομένα και θα αλλάζει σελίδα μόνο του
koslibpro Δημοσ. 13 Σεπτεμβρίου 2012 Μέλος Δημοσ. 13 Σεπτεμβρίου 2012 Και πώς ακριβώς θα γίνεται το ψάξιμο που λες; Άντε εισάγεις ένα URL και βλέπεις τα email. Γενικά πώς το φαντάζεσαι να δουλεύει για να ψάχνει πολλά URL; Και τι σημαίνει "ιστοσελίδες που έχουν keywords"; Οι σελίδες έχουν HTML, όχι keywords. Δε σου κάνω τις ερωτήσεις για να σε πρήξω αλλά για να σου δώσω να καταλάβεις ότι είναι απαραίτητες πληροφορίες τις οποίες πρέπει να δώσεις και μάλιστα με όσο περισσότερη ακρίβεια γίνεται, γιατί αυτές είναι που θα μεταφέρεις σε κώδικα. δικιο εχεις δεν το διευκρινισα πριν.keywords εννοω τα meta keywords. το να πηγαινει απο το ενα site στο αλλο,καταλαβα οτι δεν μπορω να το κανω γιατι αυτο ας πουμε το κανει η Google με 40k servers,οχι εγω οποτε σκεφτηκα το εξης:βρισκω καποιες ιστοσελιδες που εχουν τα meta keywords που με ενδιαφερουν,τις αποθηκευω σε μια βαση και απο την βαση αυτη μετα με ενα script-ακι τραβαω μια-μια σελιδα και parse-αρω τα mails.το πως ακριβως γινεται αυτο δεν το εχω σκεφτει ακομα,παντως δεν μου φανταζει τοσο δυσκολο. σε σελίδες του τύπου http://mitsos.gr/agg...s/card.php?id=1 μπορείς μια χαρά να φτιάξεις ένα ρομποτακι που θα τραβάει δεδομένα και θα αλλάζει σελίδα μόνο του αυτο δεν γνωριζω πως να το κανω.εχεις καποιο link να με κατευθυνεις? απο ακαδημαικο ενδιαφερον βεβαια θα ασχοληθω με αυτο,καθως ειναι και "παρανομο" το crawling τετοιου τυπου νομιζω.
defacer Δημοσ. 14 Σεπτεμβρίου 2012 Δημοσ. 14 Σεπτεμβρίου 2012 ΟΚ, εφόσον ξέρεις πώς παίρνεις τα περιεχόμενα μιας σελίδας πάμε στα επόμενα: σ' ενδιαφέρει να μαζέψεις απο κει μέσα τα <meta> tags και επίσης σε ενδιαφέρει να μαζέψεις τα <a> tags για να μπορείς να συνεχίσεις το crawling. Αυτά μπορείς να τα κάνεις πολύ εύκολα χρησιμοποιώντας το DOMDocument και το DOMXPath. Με το πρώτο στην ουσία κάνεις parse την HTML που κατέβασες, επιτρέποντάς σου μετά να την περιεργαστείς σε υψηλότερο επίπεδο. >$dom = new DOMDocument; $dom->loadHTML($html); Το δεύτερο: XPath, the XML Path Language, is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML document. XPath was defined by the World Wide Web Consortium (W3C). The XPath language is based on a tree representation of the XML document, and provides the ability to navigate around the tree, selecting nodes by a variety of criteria. In popular use (though not in the official specification), an XPath expression is often referred to simply as an XPath. Με άλλα λόγια, το xpath σου επιτρέπει να κάνεις queries πάνω στο document που φόρτωσες, όπως "Θέλω όλα τα meta tags": >$xpath = new DOMXPath($dom); $nodes = $xpath->query('//meta'); "Θέλω όλα τα a tags που έχουν attribute href": >$xpath = new DOMXPath($dom); $nodes = $xpath->query('//a[@href]'); Στην PHP υποστηρίζεται XPath 1.0 με τη συγκεκριμένη class. Μπορείς να δεις παραδείγματα χρήσης στο PHP manual και στο StackOverflow. Για καλύτερη κατανόηση της σύνταξης XPath μπορείς να δεις κάποιο cheat sheet, ή αν προτιμάς να μαθαίνεις με παραδείγματα δες εδώ, και βέβαια για να τα βάλεις όλα σε μια σειρά μπορείς να ανατρέχεις και στο W3C specification που έδωσα παραπάνω. Τέλος προσωπικά χρησιμοποιώ αυτό το online εργαλείο για live δοκιμές XPath όποτε χρειάζεται. Δε θα πρέπει να δυσκολευτείς πολύ να πάρεις τις πληροφορίες που θέλεις από ένα document. Στη συνέχεια μπορούμε να δούμε το πώς θα κάνεις τον crawler να κάνει crawl (μαζί με κάποιες πληροφορίες σχετικά με νομιμότητα κλπ, ακούγεται άπειρο ράδιο αρβύλα οπότε μην τα παίρνεις όλα τοις μετρητοίς -- αν θέλεις όμως δες εδώ).
pOLoS Δημοσ. 14 Σεπτεμβρίου 2012 Δημοσ. 14 Σεπτεμβρίου 2012 δικιο εχεις δεν το διευκρινισα πριν.keywords εννοω τα meta keywords. το να πηγαινει απο το ενα site στο αλλο' date='καταλαβα οτι δεν μπορω να το κανω γιατι αυτο ας πουμε το κανει η Google με 40k servers,οχι εγω [/quote'] μπορεις να χρησιμοποιήσεις το google για να βρισκεις τις σελιδες με τα keyword που θέλεις αλλά το google έχει περιορισμό στις αναζητήσεις που μπορείς να κάνεις
koslibpro Δημοσ. 14 Σεπτεμβρίου 2012 Μέλος Δημοσ. 14 Σεπτεμβρίου 2012 ΟΚ, εφόσον ξέρεις πώς παίρνεις τα περιεχόμενα μιας σελίδας πάμε στα επόμενα: σ' ενδιαφέρει να μαζέψεις απο κει μέσα τα <meta> tags και επίσης σε ενδιαφέρει να μαζέψεις τα <a> tags για να μπορείς να συνεχίσεις το crawling. Αυτά μπορείς να τα κάνεις πολύ εύκολα χρησιμοποιώντας το DOMDocument και το DOMXPath. Με το πρώτο στην ουσία κάνεις parse την HTML που κατέβασες, επιτρέποντάς σου μετά να την περιεργαστείς σε υψηλότερο επίπεδο. >$dom = new DOMDocument; $dom->loadHTML($html); Το δεύτερο: Με άλλα λόγια, το xpath σου επιτρέπει να κάνεις queries πάνω στο document που φόρτωσες, όπως "Θέλω όλα τα meta tags": >$xpath = new DOMXPath($dom); $nodes = $xpath->query('//meta'); "Θέλω όλα τα a tags που έχουν attribute href": >$xpath = new DOMXPath($dom); $nodes = $xpath->query('//a[@href]'); Στην PHP υποστηρίζεται XPath 1.0 με τη συγκεκριμένη class. Μπορείς να δεις παραδείγματα χρήσης στο PHP manual και στο StackOverflow. Για καλύτερη κατανόηση της σύνταξης XPath μπορείς να δεις κάποιο cheat sheet, ή αν προτιμάς να μαθαίνεις με παραδείγματα δες εδώ, και βέβαια για να τα βάλεις όλα σε μια σειρά μπορείς να ανατρέχεις και στο W3C specification που έδωσα παραπάνω. Τέλος προσωπικά χρησιμοποιώ αυτό το online εργαλείο για live δοκιμές XPath όποτε χρειάζεται. Δε θα πρέπει να δυσκολευτείς πολύ να πάρεις τις πληροφορίες που θέλεις από ένα document. Στη συνέχεια μπορούμε να δούμε το πώς θα κάνεις τον crawler να κάνει crawl (μαζί με κάποιες πληροφορίες σχετικά με νομιμότητα κλπ, ακούγεται άπειρο ράδιο αρβύλα οπότε μην τα παίρνεις όλα τοις μετρητοίς -- αν θέλεις όμως δες εδώ). πραγματικα πολυ χρησιμες ολες οι πληροφοριες που μου εδωσες,ευχαριστω πολυ!θα τις κοιταξω,θα διαβασω και τα tools που μου προτινεις για να μαθω να τα χρησιμοποιω κι ελπιζω να βγαλω ακρη..αν προκυψει κατι,θα ποσταρω εδω παλι. μπορεις να χρησιμοποιήσεις το google για να βρισκεις τις σελιδες με τα keyword που θέλεις αλλά το google έχει περιορισμό στις αναζητήσεις που μπορείς να κάνεις αυτο εχω σκεφτει κι εγω να το κανω ως τελευταια λυση,αν δεν βρω τιποτα καλυτερο..
IHateLove Δημοσ. 14 Σεπτεμβρίου 2012 Δημοσ. 14 Σεπτεμβρίου 2012 γιατί να το κάνεις με PHP, υπάρχει κάποιος λόγος? δεν μας είπες, τι τον θέλεις τον Crawler? για κάνα Spaming?
koslibpro Δημοσ. 14 Σεπτεμβρίου 2012 Μέλος Δημοσ. 14 Σεπτεμβρίου 2012 γιατί να το κάνεις με PHP' date=' υπάρχει κάποιος λόγος? δεν μας είπες, τι τον θέλεις τον Crawler? για κάνα Spaming?[/quote'] Υπαρχει ο λογος οτι php ειναι η γλωσσα που ξερω να χρησιμοποιω καλυτερα για αυτο το σκοπο,καθως python που φανταζομαι θα προτινες,δεν ξερω. Για το αλλο,αναφορα δεν δινω.
pOLoS Δημοσ. 14 Σεπτεμβρίου 2012 Δημοσ. 14 Σεπτεμβρίου 2012 υπάρχει πρόγραμμα για windows για αυτό που θες
koslibpro Δημοσ. 14 Σεπτεμβρίου 2012 Μέλος Δημοσ. 14 Σεπτεμβρίου 2012 εστω κι ετσι,θελω να μπω στην διαδικασια να το κανω μονος μου,η ακαδημαικη γνωση με νοιαζει περισσοτερο αυτη τη στιγμη..
IHateLove Δημοσ. 15 Σεπτεμβρίου 2012 Δημοσ. 15 Σεπτεμβρίου 2012 έχω πολύ καιρό να ασχοληθώ με την C#, δεν είμαι σε φόρμα αλλά δεν πειράζει... Γενικά μου αρέσει πολύ το Parsing... ΥΓ: το έχω υλοποίηση με "χαζό" τρόπο, με πίνακα, θα κάνω αυτό που είπε ο defacer πάνω, με κάποιο expression δηλαδή απλά επειδή δεν έχω ασχοληθεί ποτέ με expresions στην c# είπα να το κάνω όπως ξέρω (αν και ξέρω τα expression) Πάντως η Microsoft στο Word και όχι μόνο χρησιμοποιεί πίνακες αρκετά, δηλαδή το ότι πατάς κάπου με το ποντίκι και σου λέει σε ποιο σημείο είναι το γράμμα (πχ είναι το 50ο) αυτό γίνεται με πίνακες! να το θεωρήσουμε "χαζό" τρόπο λοιπόν? ΥΓ: επαληθεύστε το, δείτε τον πηγαίο κώδικα http://www.w3schools...=tryhtml_mailto 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα