Crawler de site en php

Description

!!! Attention nécessite curl !!!!

Cette source permet de créer un mini crawler php pour récupérer des pages php qui peuvent nécessité un formulaire d'authentification.
Cette classe gère les cookies de session et permet aussi de changer l'identité du navigateur.

Il s'agit d'une classe que j'ai adapté d'une classe existante, mais je ne retrouve pas le liens de la version originale.

Les sources de la classes se trouvent dans le zip.

Petit conseil d'utilisation, pour faciliter la tache de vérification des variables transmises au serveur dans les formulaires, j'utilise l'outil de surveillance réseau de firebug.

Source / Exemple :


<?php

// Exemple d'utilisation sur le site de phpcs :)

include "classes/crawler.php";

/**
connexion et authentification

  • /
$myCrawler = new Crawler("phpcs", "true", "http://www.phpcs.com/login.aspx", /** formulaire d'authentification **/ array("_ASYNCPOST" => "true", "__EVENTARGUMENT" => "", "__EVENTTARGET" => "m\$CPH1\$LoginCS\$btnConnect", "__LASTFOCUS" => "", "__VIEWSTATE" => "/wEPDwUKLTk2MTMxMDA4Mw9kFgJmD2QWAgICEGRkFggCAw9kFgICAQ8WAh4HVmlzaWJsZWhkAgQPZBYEAgIPEA8WAh8AaGRkZGQCAw8PFgIfAGhkFgICAQ8QZGQWAGQCBQ9kFgJmD2QWCgICDw8WAh4PVmFsaWRhdGlvbkdyb3VwBRRjdGwwMF9DUEgxX0xvZ2luQ1NfdmRkAgMPDxYCHwEFFGN0bDAwX0NQSDFfTG9naW5DU192ZGQCBg8PFgIfAQUUY3RsMDBfQ1BIMV9Mb2dpbkNTX3ZkZAIHDw8WAh8BBRRjdGwwMF9DUEgxX0xvZ2luQ1NfdmRkAgsPZBYCZg9kFgRmDw8WBB8AZx4EVGV4dAU3RXJyZXVyIGxvcnMgZGUgbGEgc2Fpc2llIGRlIHZvdHJlIGxvZ2luIG91IG1vdCBkZSBwYXNzZWRkAgEPDxYCHwEFFGN0bDAwX0NQSDFfTG9naW5DU192ZGQCCQ9kFgICAQ8WAh8AaGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFG20kQ1BIMSRMb2dpbkNTJGNiUmVtZW1iZXJNZR+7aAhacpuYY8BQX2vS39YeG/8/", "l" => "0", /** mdp d'authentification **/ "m\$CPH1\$LoginCS\$tbPassword" => "mot de passe", /** user d'authentification **/ "m\$CPH1\$LoginCS\$tbUserName" => "nom d'utilisateur", "m\$SC1" => "m\$CPH1\$LoginCS\$upp|m\$CPH1\$LoginCS\$btnConnect", "m\$UCTabsHome1\$DropSearch" => "tout", "m\$UCTabsHome1\$txtSearch" => "" ) ); /** récupération d'une page get
  • /
$res = $myCrawler->http_fetch_url("http://www.phpcs.com/default.aspx"); //affichage du resultat echo $res; /** récupération d'une page post
  • /
$res = $myCrawler->http_post_url("http://www.phpcs.com/default.aspx", //formulaire post array( "__VIEWSTATE" => "/wEPDwULLTEzMzU1MjE5NzcPZBYCZg9kFgICAhBkZBYGAgMPZBYCAgEPFgIeB1Zpc2libGVoZAIED2QWBAICDxAPFgIfAGhkZGRkAgMPDxYCHwBoZBYCAgEPEGRkFgBkAgkPZBYCAgEPFgIfAGhkZNiqbZSK+5ynghDGsF2xMCr7KBF2" ,"l" => "0" ,"m\$UCTabsHome1\$DropSearch" => "tout" ,"m\$UCTabsHome1\$GGSearch" => "Rechercher" ,"m\$UCTabsHome1\$txtSearch" => "socket" ) ); //affichage du resultat echo $res; ?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.