Php-parsing a web page

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 12 Οκτ 2012 12:20

Έχοντας το url τις σελίδας κάνοντας parsing θέλω να πάρω συγκεκριμένο href μέσα από τον source code της συγκεκριμένης σελίδας.

Έχω των συγκεκριμένο κώδικα :
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>" ;

αλλά μου επιστρέφει το πρώτο href που εντοπίζει εγω θέλω συγκεκριμένω href να μου επιστρέψει. Τι πρέπει να προσθέσω στον κώδικα ώστε να μου επιστρέψει το href Που θέλω?

π.χ πριν από το href που θέλω εγώ προηγείτε ενα <div class="gs_fl"> πως μπορώ εγώ να του πώ
πήγαινε στο <div class="gs_fl"> και πάρε μου το href που είναι μετά

Ευχαριστώ εκ των προτέρων

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Php-parsing a web page

Δημοσίευση από gvre » 12 Οκτ 2012 12:57

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

$html = '<div class="gs_fl"><a href="http&#58;//www.domain.gr">domain.gr</a></div><div><a href="http&#58;//skip.gr">skip</a></div><div class="gs_fl"><a href="http&#58;//www.domain2.gr">domain2.gr</div>';

$pattern = '#<div class="gs_fl"><a.+?href="&#40;&#91;^"&#93;+&#41;"#si';
if &#40;preg_match_all&#40;$pattern, $html, $matches&#41;&#41;
&#123;
        $hrefs = $matches&#91;1&#93;;
        print_r&#40;$hrefs&#41;;
&#125;

vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 12 Οκτ 2012 13:39

gvre έγραψε:

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

$html = '<div class="gs_fl"><a href="http&#58;//www.domain.gr">domain.gr</a></div><div><a href="http&#58;//skip.gr">skip</a></div><div class="gs_fl"><a href="http&#58;//www.domain2.gr">domain2.gr</div>';

$pattern = '#<div class="gs_fl"><a.+?href="&#40;&#91;^"&#93;+&#41;"#si';
if &#40;preg_match_all&#40;$pattern, $html, $matches&#41;&#41;
&#123;
        $hrefs = $matches&#91;1&#93;;
        print_r&#40;$hrefs&#41;;
&#125;
Αυτό που θέλω είναι...αλλά ξέχασα να διευκρινήσω κάτι..ο κώδικας που μ έστειλες είναι σωστός και δουλευει απλά θέλω το πρώτο <div class="gs_fl"> που βρίσκει να παιρνει το href του και μετά να σταματάει γιατί τώρα μου βρίσκει και όλα τα υπόλοιπα <div class="gs_fl"> που υπάρχουν. Εγώ θέλω μόνο το πρώτο που θα εντοπίζει

Ευχαριστώ για την βοήθεια όπως και να χει

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Php-parsing a web page

Δημοσίευση από cherouvim » 12 Οκτ 2012 14:48

Γενικά αν σκοπεύεις να κάνεις βαρύ parsing/scraping σελίδων είναι καλύτερο να κάνεις χρήση κάποιου πιο high level τρόπου για να τραβάς πληροφορία. Πχ με το http://code.google.com/p/phpquery/

Αυτό γιατί: http://stackoverflow.com/a/1732454/72478

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Php-parsing a web page

Δημοσίευση από gvre » 12 Οκτ 2012 14:50

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

$pattern = '#<div class="gs_fl"><a.+?href="&#40;&#91;^"&#93;+&#41;"#si';
if &#40;preg_match&#40;$pattern, $html, $matches&#41;&#41;
&#123;
        $href = $matches&#91;1&#93;;
        echo $href;
&#125;

vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 12 Οκτ 2012 14:58

gvre έγραψε:

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

$pattern = '#<div class="gs_fl"><a.+?href="&#40;&#91;^"&#93;+&#41;"#si';
if &#40;preg_match&#40;$pattern, $html, $matches&#41;&#41;
&#123;
        $href = $matches&#91;1&#93;;
        echo $href;
&#125;


Δουλευει μια χαρά...Σ ευχαριστώ!

vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 14 Οκτ 2012 04:34

cherouvim έγραψε:Γενικά αν σκοπεύεις να κάνεις βαρύ parsing/scraping σελίδων είναι καλύτερο να κάνεις χρήση κάποιου πιο high level τρόπου για να τραβάς πληροφορία. Πχ με το http://code.google.com/p/phpquery/

Αυτό γιατί: http://stackoverflow.com/a/1732454/72478
. Θα το κοιτάξω ευχαριστώ !

vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 15 Οκτ 2012 16:10

Παίδες θα ξαναχρειαστώ την βοήθεια σας...

Έχουμε και λέμε..
Έχοντας πάρει πλέων το επιθυμητό href μεταφερόμαστε στην συγκεκριμένη σελίδα

Θέλω να ξανα κάνω parsing την σελίδα ψάχνοντας αυτή την φορά ένα συγκεκριμένο string το string αυτό βρίσκεται μετά από ένα <div class="gs_a">

Έγω θέλω να μου ψάχνει μετά από όλα τα <div class="gs_a"> ένα συγκεκριμένο string(μια λέξη) και να μου εμφανίζει πόσες φορές την εντόπισε

Ότι διαθέτεται μου κάνει είτε είναι κώδικας είτε κάποιο url για να ψάξω

Ευχαριστώ

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Php-parsing a web page

Δημοσίευση από gvre » 15 Οκτ 2012 16:25

Μπορείς να το κάνεις εύκολα με το phpQuery, που έστειλε ο cherouvim. Έχει αρκετά παραδείγματα στο manual.

vasilisps1
Δημοσιεύσεις: 11
Εγγραφή: 12 Οκτ 2012 11:56

Php-parsing a web page

Δημοσίευση από vasilisps1 » 15 Οκτ 2012 16:52

gvre έγραψε:Μπορείς να το κάνεις εύκολα με το phpQuery, που έστειλε ο cherouvim. Έχει αρκετά παραδείγματα στο manual.
Έιχα σκοπό να το κοιτάξω απλά το postara μπας και υπάρξει και τίποτα άλλο..

Ευχαριστώ

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες