2009-04-21 5 views
0

Je suis un débutant et essayer différentes choses tous les jours et toujours venir ici quand je suis coincé avec quelque chose.Fonction Curl pour sélectionner les options d'une boîte de sélection et soumettre automatiquement

Je veux écrire un script en utilisant curl et php qui va à ce lien: http://tools.cisco.com/WWChannels/LOCATR/openBasicSearch.do et ensuite parcourir chaque page pour chaque pays en capturant une liste de chaque partenaire dans chaque pays et l'enregistrer dans la base de données.

Je n'ai aucune idée comment le script sélectionnera les pays un par un de la boîte de sélection et redirigera la page vers la page de pays ... qui est la première chose à faire, une fois que nous sommes sur la page nom et adresse dans la base de données que je peux gérer.

Le problème est avant tout sélectionnons url pays :: http://tools.cisco.com/WWChannels/LOCATR/BasicSearch.do et après nous sélectionnons pays dire url « inde » est: http://tools.cisco.com/WWChannels/LOCATR/performBasicSearch.do, il n'y a aucune référence à un pays sélectionné. L'idée que j'ai eu était de parcourir la page HTML, et d'entrer tous les pays dans un tableau puis de faire une fonction récursive pour appeler une page avec un pays spécifique mais pour cela nous avons besoin de quelque chose de différent pour chaque pays en récursif bonne fonction?

S'il vous plaît aider

Répondre

2

Votre URL est foiré, donc je ne vois pas la page exacte que vous parlez, mais ce qui est le plus probable passe est que lorsque vous changez le pays, le site fait une POST demande à la même page avec une variable comme country (bien que cela puisse être quelque chose d'autre) avec la valeur de l'identifiant du pays/pays que vous avez sélectionné. Si vous affichez la source sur la page, vous pourrez voir le nom du champ de saisie qui est transmis. Une fois que vous faites cela, tout en faisant votre demande cURL vous pouvez définir le cuRL option de CURLOPT_POSTFIELDS, qui se lit comme ceci:

Les données complètes pour publier dans une opération de HTTP « POST ». Pour publier un fichier, préfixez un nom de fichier avec @ et utilisez le chemin d'accès complet. Cela peut être passé comme une chaîne urlencodée comme 'para1 = val1 & para2 = val2 & ...' ou comme un tableau avec le nom du champ en tant que clé et les données de champ en tant que valeur.

Ainsi, en gardant cela à l'esprit que vous feriez quelque chose comme ceci:

$ch = curl_init('http://tools.cisco.com/WWChannels/LO...BasicSearch.do'); 
$ch = curl_setopt($ch, CURLOPT_POSTFIELDS, array('country' => 'India')); 
$ch = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$contents = curl_exec($ch); 
curl_close($ch); 

Comme je l'ai dit, cependant, le pays => Inde une partie est une supposition quant à ce que le domaine pourrait passe. Vous devez inspecter le code HTML pour le découvrir par vous-même.

1

Pour l'automatisation/raclage, je vous recommande d'utiliser un navigateur virtuel, tel que SimpleBrowser. Cela fait partie de SimpleTest, mais vous pouvez l'utiliser seul.

Questions connexes