Alle Links einer Seite auslesen (+ spezifizierung)

  • Warum nicht gleich mit regexp weiterfahren?

    PHP
    <?php
    $content = file_get_contents("http://www.photoshoptalent.com/photoshop-tutorials/ext/3166/Tutorial-on-how-to-create-an-awesome-portfolio-layout.html");
    preg_match("/href='(.*)'>(?=[<strong>view tutorial])/", $content, $matches);
    print_r($matches);
    ?>

    Findet immer den ersten Link der Seite, die von einem "<strong>view tutorial" gefolgt wird.

    Aber wirst du uns jetzt hier jedesmal um eine Lösung bitten wenn du eine neue Seite gefunden hast, die du parsen willst? -.-

  • Danke für die Hilfe! :)

    phore:

    Nee, ich will euch jetzt nicht ständig belästigen, wenn ich eine Seite gefunden habe. Ich habe auch schon andere Seiten gefunden & geparst, ohne hier um hilfe zu bitten, nur bei der gab es jetzt ein Problem.

    Nur wenn ich erstmal weis wie diese Grunddinge gehen wie String zwischen 2 anderen Strings, nur den ersten Link auslesen etc. dann kann ich das auch auf andere Seiten und Probleme anwenden... mir ist's auch nicht angenehm hier ständig fragen zu müssen weil ich bei google kein passendes Ergebnis finde... - sorry. :?

    Aber ich find's trotzdem klasse das ihr euch die Zeit für mich nehmt!
    Schönen Samstag noch :)

  • Warum nicht gleich mit regexp weiterfahren?

    PHP
    <?php
    $content = file_get_contents("http://www.photoshoptalent.com/photoshop-tutorials/ext/3166/Tutorial-on-how-to-create-an-awesome-portfolio-layout.html");
    preg_match("/href='(.*)'>(?=[<strong>view tutorial])/", $content, $matches);
    print_r($matches);
    ?>

    Findet immer den ersten Link der Seite, die von einem "<strong>view tutorial" gefolgt wird.

    Aber wirst du uns jetzt hier jedesmal um eine Lösung bitten wenn du eine neue Seite gefunden hast, die du parsen willst? -.-

    1. mal brauchen wir den Link vpr dem viewtutorial, also deine Lösung passt nicht, führ mal meins aus, 2tens bin ich kein fan von regexp sie sind langsamer als meine Lösung und naja die ganze syntax find ich zum kotzen

  • Ne er will ja den ersten view tutorial link, und genau das holt mein regexp.
    Naja schneller, dafür fällt dein auf die Schnauze wenn der Seitenbetreiber dem Link eine class gibt oder so.

    2tens bin ich kein fan von regexp sie sind langsamer als meine Lösung und naja die ganze syntax find ich zum kotzen


    Gibt doch nichts schöneres :) Ausserdem ist regex oftmals die einfachste und pragmatischste Lösung für solche Sachen.

    Aber egal - machts wie ihr wollt. Ich würde das wharscheinlich etwas anders angehen. z.B. die Dateien abgreifen, mit einem Script in XHTML konvertieren lassen, dann mit xPath auf die Links zugreifen. Und das XML nur erneuern, wenn sich die Seite geändert hat. Wobei das nicht immer möglich ist.

    4 Mal editiert, zuletzt von phore (30. Mai 2009 um 16:01)

  • Ne er will ja den ersten view tutorial link, und genau das holt mein regexp.
    Naja schneller, dafür fügt der Seitenbetreiber ein <p></p> ein oder so und dann klappt gar nichts mehr.

    Naja egal. Macht wie ihr wollt.

    Hehe komm lach ein mal ;)

    Dein Ergebniss liefert aber

    Array ( [0] => href='http://www.photoshoptalent.com'> [1] => http://www.photoshoptalent.com )

    Und er will die Url von dem

    Code
    <strong>grafpedia.com</strong></td></tr><tr><td><a target='_blank' href='http://www.grafpedia.com/tutorials/2073'><strong>view tutorial</strong></a> |


    Link welches das
    <strong>view tutorial</strong> umschließt.....


    Da es ein CMS ist wird die Seite wohl nicht geändert ,aber ansich hast schon recht , dann mach mal das es klappt

    mfg

  • GUt ähm TRreadersteller was hast du damit vor, ich würde es wie phore sagte nicht live verarbeiten, den diese Seite ist wirklich nicht schnell im Laden, das macht das ganze script langsam

    Ich würde an deiner stelle als nen Cronjob machen der zb jede 4 Stunden das script aufruf und das ergebniss in eine txt bzw db speichert , dann kansnt es schön schnell abfragen

    mfg