2017-01-22 2 views
0

Ich versuche herauszufinden, wie (und der beste Weg), einen bestimmten Abschnitt einer Seite zurückzugeben. Ich möchte wissen, ob ich Informationen in einem HTML-Abschnitt-Tag "greifen" und zurückgeben kann.Zurückgeben eines bestimmten Abschnitts auf Anfrage

EDIT:

ich auf den Vorschlägen unten gearbeitet habe. Bis jetzt habe ich ein zufälliges Stück der Seite gekratzt, was funktioniert, aber irgendwie kann ich nicht den Teil kratzen, den ich möchte.

Dies ist der "random" Teil:

<?php 
$curl = curl_init('https://www.ah.nl/producten/product/wi94782/ah-mandarijnen-net'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 

$page = curl_exec($curl); 

if(curl_errno($curl)) // check for execution errors 
{ 
     echo 'Scraper error: ' . curl_error($curl); 
     exit; 
} 

curl_close($curl); 

$regex = '/<div class="navigation-section navigation-section--home">(.*?)<\/div>/s'; 
if (preg_match($regex, $page, $list)) 
    echo $list[0]; 
else 
    print "Not found"; 
?> 

Der obige Code gibt:

<div class="navigation-section navigation-section--home"> 
       <a href="/" 
        class="ah-online-icon icon--home link--2 navigation-section__link navigation-section__link--left-icon navigation-section__link--home">Home</a> 
     </div> 

Also, das funktioniert. Außer ich das Teil kratzen wollen, ist:

<section class="nasa-number"><span>548401</span></section>

(Sie können die link überprüfen, wenn Sie wollen, Ich versuche, die graue Zahl am unteren Rand der Seite, auf der rechten Seite zu drucken)

Stattdessen, wenn ich $regex = '/<section class="nasa-number">(.*?)<\/section>/s'; verwenden, gibt sie: Nicht

gefunden
+0

Sie sind unklar, was Sie wollen. Es kann hilfreich sein, wenn Sie einen Code anfügen können, den Sie bereits als Beispiel zu dem gemacht haben, was Sie erreichen möchten. – georoot

+0

Ich verstehe vollständig, was Sie sagen. Ich habe noch keinen Code, weil ich keine Ahnung habe, wo ich anfangen soll. Ich kann komplette Links posten und Ihnen zeigen. – Thimo

+0

Bildschirm scraping mit PHP ist in der Regel mit CURL getan, die den Inhalt abrufen kann. Dann müssten Sie Code schreiben, um den Wert zu finden, nach dem Sie suchen, und einer Variable zuweisen, die normalerweise Kenntnisse über reguläre Ausdrücke benötigt. –

Antwort

-2

Ja es in vielerlei Hinsicht getan werden kann Sie Jquery für das, auf dem können Sie onload ausführen können() fiinction.if eine beliebige Anzahl ist in URL können Sie es erhalten und an andere selbst generierte URL übergeben. mir bitte Code Probe schicken, damit ich Ihnen die beste Lösung, die auf Ihr Problem geben kann

+0

da er versucht, Inhalte von einer Remote-Site zu holen, die er nicht kontrollieren kann, kann ich nicht sehen, wie jquery helfen kann, oder warum Sie es verwenden würden, nachdem Sie den Remote-Inhalt erfolgreich abgerufen haben –

0

ich denke, das zu tun, was Sie

if (preg_match("/<section class=\"nasa-number\"><span>(.*?)<\/span><\/section>/", $page, $list)){ 
    echo $list[1]; 
    } else { 
    print "Not found"; 
} 

brauchen Dies alles nach curl_close($curl); Hinweis ersetzen würde alles, was ich dbl Zitate verwendet haben als Container musste ich also den eigentlichen Zitaten entgehen, die ich zuordnen wollte. Getestet hier http://www.phpliveregex.com/p/iFn

+0

Großartig! Ich werde das in ein paar testen. – Thimo

Verwandte Themen