Utilisation de cURL pour obtenir tous les liens dans un site web (et pas seulement la page)
J'utilise la suite script PHP pour récupérer tous les liens sur une page donnée, mais je suis en train de récupérer tous les liens sur un site web dans son ensemble.
<?php
function urlLooper($url){
$urlArray = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$regex='|<a.*?href="(.*?)"|';
preg_match_all($regex,$result,$parts);
$links=$parts[1];
foreach($links as $link){
array_push($urlArray, $link);
}
curl_close($ch);
foreach($urlArray as $value){
echo $value . '<br />';
}
}
$url = 'http://www.justfundraising.com/';
urlLooper($url);
?>
Est-il possible d'utiliser cURL (ou toute autre méthode franchement) pour obtenir tous les liens sur un site web? J'ai accès au serveur dans le cas où vous vous poseriez la question.
Mon idée était de générer tous les liens de la page d'accueil, puis de transmettre ces liens de retour par la même fonction pour obtenir une nouvelle liste de liens en ignorant les doublons. Je figure de cette façon que je vais obtenir toutes les pages.
Toute aide sera appréciée!
Vous pourriez étudier
Votre script ci-dessus ne m'a aidé énormément, merci =)
J'ai utilisé ceci; vous ne savez pas si cela peut aider.
phpQuery
qui facilite la page d'extraction et d'analyse, permettant de construire une simple araignée moins encombrant que le manuel de roulage et de l'extraction de texte approches.Votre script ci-dessus ne m'a aidé énormément, merci =)
J'ai utilisé ceci; vous ne savez pas si cela peut aider.
OriginalL'auteur Tom Hartman | 2011-08-11
Vous devez vous connecter pour publier un commentaire.
@Mario mentionne ci-dessus peut-être regarder dans l'aide de phpQuery (http://code.google.com/p/phpquery/). Une fois que vous avez téléchargé la bibliothèque et de l'inclure sur votre page, ci-dessous est un exemple de code montrant comment vous pouvez obtenir un tableau qui contient tous les maillons de la chaîne que vous avez passer (j'ai juste une chaîne de caractères codée en dur dans le newDocument fonction à titre d'exemple):
Le code ci-dessus sera de retour:
Espère que cette aide.
OriginalL'auteur Rook
curl extrait uniquement ce que vous lui dites. Il ne sera pas analyser le contenu pour vous, et il ne sera pas récursivement fetch "externe" ressources visées par le contenu. Vous aurez à fouiller dans le code HTML renvoyé de vous-même, l'analyse de l'image/script liens, et l'utilisation plus curl appels à récupérer ceux-ci.
En d'autres termes, vous devrez reproduire
wget
, qui se résume à: il suffit d'utiliser wget.OriginalL'auteur Marc B
j'ai essayé le même à l'aide de simplehtmldom . mais le code s'est écrasé après un certain temps . en fait j'ai essayé d'utiliser dfs méthode qui peut débordement de la pile à un moment donné .
vous pouvez vérifier cette méthode à l'aide de cURL
voici mon code :
OriginalL'auteur qmaruf