als ich versuchte, Goutte innerhalb einer while-Schleife die goutte Instanz verwenden nur einmal erstellt und jetzt wiederholte auf das 20-fache, wo, wie ich jede Schleife eine neue Instanz soll. das Ergebnis der gefilterten Daten aus ist eine Wiederholung der Daten auf der ersten Instanz zwanzigmal, wo, wie, was ich will, ist die separaten Daten auf alle 20 Seiten.goutte HTTP-Anforderung Erstellen nicht mehrere Instanzen
while($count <=20) {
$new_url = $url .$count;
$check[] = $new_url;
//get a goutte object of each new url returned after each loop
$crawler = Goutte::request('GET', $new_url);
//get all text from a table data of class narrow
$results = $crawler->filter($lin)->each(function ($node, $i) {
return $node->text();
});
$pattern = 'tr>td.pu>a';
//get all the links inside table data of class a
$links = $crawler->filter($pattern)->each(function ($node, $i) {
$href = $node->extract(array('href')); // This is a DOMElement Object
return $href;
});
//filter the links for the needed one which is always greater than 30 characters
foreach($links as $link){
if(strlen($link[0]) > 30){
$p_links[] = $link;
}
}
for($i =0; $i<count($results)-3; $i++){
$content[] = ['comments' => $results[$i], 'links' => 'http://www.nairaland.com' . $p_links[$i][0]];
}
//add the data to an array
$data[] = $content;
$count++;
$crawler = null;
}
dann kehrte ich Daten außerhalb der while-Schleife
ok .... in der Tat war es eher ein goutte Problem .... ich Ihren Rat daran setzen wird. Danke für den Kommentar. Ich habe es jetzt gelöst. – itsdenty