À un moment où les données Internet se développent rapidement, comment ramper efficacement et stable les données des sites Web cibles sont devenus un besoin courant pour les développeurs. Cet article vous présentera en détail comment utiliser le langage PHP et l'outil open source PHPSPider pour créer un système de Crawler par lots efficace pour obtenir une collecte automatique de données massives.
PHPSPIDER est un cadre de robotté léger basé sur PHP. Il prend en charge la concurrence multi-thread et reconnaît automatiquement la structure de contenu de la page, et possède des fonctions intégrées telles que la gestion des URL et l'extraction des données. C'est un excellent choix pour les développeurs PHP qui ont besoin d'un contrôle flexible et d'une logique personnalisée.
Avant de commencer, assurez-vous que PHP et le compositeur sont installés localement. Installez ensuite PHPSPider via la commande suivante:
composer require duskowl/php-spider
Une fois l'installation terminée, vous pouvez utiliser les commandes fournies par l'outil pour générer le script initial:
vendor/bin/spider create mySpider
Après avoir exécuté la commande ci-dessus, le fichier myspider.php sera généré dans le répertoire actuel. Ensuite, nous rédigerons la logique du robot dans ce fichier.
Ouvrez le fichier myspider.php , modifiez le constructeur __Construct () et configurez les champs URL et cibles à ramper.
public function __construct()
{
$this->startUrls = [
'http://example.com/page1',
'http://example.com/page2',
'http://example.com/page3',
];
$this->setField('title', 'xpath', '//h1');
$this->setField('content', 'xpath', '//div[@class="content"]');
}
Lorsque StartUrls est la liste des pages initiale, SetField est utilisé pour définir les champs de page à extraire et prend en charge XPATH ou le positionnement régulier.
La logique de traitement après le grattage des données doit être écrite dans la méthode Handle () . Les données peuvent être sorties vers un terminal, une base de données ou d'autres supports de stockage.
public function handle($spider, $page)
{
$data = $page['data'];
$url = $page['request']['url'];
echo "URL: $url\n";
echo "Title: " . $data['title'] . "\n";
echo "Content: " . $data['content'] . "\n";
}
Une fois la logique terminée, vous pouvez exécuter le script avec la commande suivante et commencer à ramper:
vendor/bin/spider run mySpider
Le programme traversera automatiquement l'URL configurée, collectera les données et le processus de sortie.
Pour améliorer les performances ou répondre aux besoins de l'acquisition de synchronisation, PHPSPider fournit un support de configuration flexible.
function __construct()
{
$this->concurrency = 5; // Définir le numéro de concurrence maximum sur5
}
Le paramètre de numéro de concurrence peut améliorer efficacement l'efficacité de rampe de données, et il est recommandé de s'ajuster raisonnablement en fonction des performances du serveur.
public function startRequest()
{
$this->addRequest("http://example.com/page1");
$this->addRequest("http://example.com/page2");
$this->addRequest("http://example.com/page3");
}
Combiné avec les tâches de synchronisation du système (CRON), les robots peuvent être exécutés régulièrement:
chmod +x mySpider.php
./mySpider.php
Avec l'aide du framework PHPSPider, nous pouvons rapidement construire des programmes de robots PHP puissants, stables et flexibles. En configurant raisonnablement les URL, les champs, les mécanismes de tâches de concurrence et de synchronisation, la collecte automatique de données massives peut être réalisée efficacement, fournissant une forte prise en charge pour l'analyse des données et l'exploitation de contenu.
J'espère que les compétences pratiques offertes dans cet article peuvent vous aider à maîtriser rapidement les points clés du développement de Crawler PHP.