2014-04-20 1 views
6

Ce que j'essaie de faire est de faire un bot qui se connecterait à un site en utilisant mon compte et de faire un peu de travail automatiquement (travail légitime bien sûr) . Par exemple, il peut y avoir un post dans un forum avec des milliers de commentaires séparés en centaines de pages. Le message ne peut être consulté que par les utilisateurs enregistrés. Je souhaite y trouver les commentaires d'un utilisateur spécifique et je veux qu'un robot PHP se connecte avec mon compte, lis chaque page de commentaire une par une et extrait les commentaires de cet utilisateur spécifique et les affiche pour moi.Comment faire un bot avec PHP pour se connecter et faire des choses sur un site Web

Ce n'était qu'un exemple bien sûr. Je peux faire l'extraction et l'analyse, mais je n'arrive pas à faire en sorte que le robot se connecte et passe à autre chose. Je ne suis qu'un débutant en PHP, je l'ai essayé ce qui suit:

  1. utilisé mon propre formulaire pour transmettre des données de poste à la page de connexion du site, mais ne fonctionne pas parce qu'il a continué à dire referer invalide. Je me suis connecté manuellement, puis j'ai ouvert mon script dans un nouvel onglet, mais cela ne fonctionnait pas non plus et il a demandé au bot de se connecter à nouveau.

Alors pouvez-vous s'il vous plaît me donner une idée sur la façon de faire cela? Fondamentalement, il doit aller à la page de connexion, en quelque sorte taper le nom d'utilisateur et mot de passe, se connecter, aller à une page spécifique, et faire des choses. D'ailleurs, cela peut-il être fait avec JavaScript aussi?

Merci.

+1

Si vous utilisez javascript, alors vous obtiendrez l'erreur Cross Origin. Donc je ne pense pas que js aidera beaucoup. –

Répondre

9

Vous avez besoin de php_curl pour vous authentifier et une fois la session terminée, vous pouvez effectuer l'extraction. Quelque chose comme ceci:

$host = curl_init($url); 
curl_setopt($host, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders)); 
curl_setopt($host, CURLOPT_HEADER, 1); 
curl_setopt($host, CURLOPT_USERPWD, $username . ":" . $password); 
curl_setopt($host, CURLOPT_TIMEOUT, 30); 
curl_setopt($host, CURLOPT_POST, 1); 
curl_setopt($host, CURLOPT_POSTFIELDS, $payloadName); 
curl_setopt($host, CURLOPT_RETURNTRANSFER, TRUE); 
$return = curl_exec($host); 
curl_close($host); 
+0

Merci beaucoup. Je ne sais pas comment utiliser curl, mais je peux commencer à apprendre. Merci pour la direction :) – CluelessNoob

Questions connexes