Formation référencement

Soumission automatique de formulaires Curl et PHP

Ecrit par admin le mercredi 13 février 2008 à 4:19 - Catégorie Outils référencement,Scripts PHP

Comment soumettre ou remplir des formulaires automatiquement avec Curl et PHP ?
Soumission automatique de formulaires Curl et PHP

Pour soumettre des données automatiquement à un formulaire, il faut dans un premier temps récupérer les informations obligatoires à saisir. Pour cela, on regarde le code source du formulaire et on extrait les champs à soumettre (on pourrait automatiser cette étape mais ce n’est pas l’objet de cet article).

On peut aussi utiliser l’extension webdeveloper pour Firefox, celle-ci permet de convertir un formulaire POST en GET et donc de voir les variables à passer directement dans l’url :

Convertir post en get avec web developer Firefox

Cliquez ici pour télécharger cette extension indispensable.

Comment procéder pour remplir un formulaire de façon automatique en lancant un simple script PHP ?

Nous allons utiliser la librairie Curl, supportée par PHP. Curl va nous permettre de soumettre des données de façon automatique tout type de formulaires, commentaires de blogs, annuaires, forums et tout site web ayant des formulaires permettant de laisser des commentaires, messages ou autre…

Nous allons prendre l’exemple d’un formulaire de soumission de sites dans un annuaire comprenant les champs suivants :

– Catégorie
– Nom
– Email
– Nom du site
– Adresse web
– Description du site
– Ascreen ou image miniature du site

Ces champs sont souvent rencontrés lorsqu’on inscrit un site web dans un annuaire.

Exemple fictif de formulaire de soumission que l’on rencontre lorsque l’on soumet un site dans un annuaire :

Tous les champs sont obligatoires !















Le code source du formulaire ci-dessus pour récupérer les champs qui nous intéresse :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<form id="soumet" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" name="form2submit">
<fieldset>
<legend>Tous les champs sont obligatoires !</legend>
<input type="hidden" name="action" value="submit" />
<select name="id_cat">
<option value=0>Liste catégories</option>
<option value=0>--------------------------</option>
<option label="Annuaires référencement " value=7>Annuaires référencement</option>
<option label="Blogs référencement " value=6>Blogs référencement</option>
<option label="Concours de référencement " value=4>Concours de référencement</option>
<option label="Forums référencement " value=2>Forums référencement</option>
<option label="Inclassables " value=8>Inclassables</option>
<option label="Outils référencement " value=1>Outils référencement</option>
<option label="Prestataires référencement " value=5>Prestataires référencement</option>
<option label="Sites web Référencement " value=3>Sites web Référencement</option></select>
<br /><br />
<label>Votre nom :   </label>
<input type="text" name="nom_proprio" maxlength="50" size="53" value="" /><br />
<label>Votre email :   </label>
<input type="text" name="email_proprio" maxlength="75" size="53" value="" /><br />
<label>Titre du site : &nbsp; </label>
<input type="text" name="titre" maxlength="50" size="53" value="" /><br />
<label>Url du site :   </label>
<input type="text" name="url" maxlength="150" size="53" value="http://" /><br />
<label>Url image :</label>
<input type="text" name="url_image" maxlength="150" size="53" value="http://" /><br /> 
<br /> 
<label>Description du site<br />
</label>
<textarea name="description" cols="50" rows="5"></textarea>
<br />
<input id ="go" type="submit" value="Soumettre le site" />
</fieldset>
</form>

On doit donc récupérer les champs suivants :

action
nom_proprio
email_proprio
titre
url
url_image
description
id_cat

Voici le code php qui va envoyer les données automatiquement à l’aide de Curl :

Ici on choisi de soumettre dans la catégorie blog référencement (catégorie N°6), on pourrait là encore extraire toutes les catégories, les mettre en bdd et faire une recherche par mot-clé sur ces catégories pour récupérer l’id qui nous intéresse, les techniques différent quant à la récupération de ces catégories, tout dépend aussi si on veut faire de l’automatique ou du semi-automatique, on peut en discuter au pied de cet article.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$postfields = array();
$postfields["action"] = "submit";
$postfields["nom_proprio"] = "Tiger";
$postfields["email_proprio"] = "none@none.com";
$postfields["titre"] = "Techniques referencement";
$postfields["url"] = "http://www.seoblackout.com/";
$postfields["url_image"] = "http://www.seoblackout.com/ascreen.jpg";
$postfields["description"] = "SEO BlackOut est dédié aux techniques de référencement et de positionnement de sites web.";
$postfields["id_cat"] = "6";
//$postfields["add2newsletter"] = "1";
//url de la page de soumission
//ici mon annuaire (qui a un captcha donc inutile de tenter la soumission auto, c'est pour l'exemple)
$url = "http://www.netdeveloppeur.com/annuaire/suggerer_site.php?action=meta_pass&id_cat=0";
$useragent = "Mozilla/5.0";
$referer = $url; 
 
//Initialise une session CURL
$ch = curl_init($url);
//CURL options
curl_setopt($ch, CURLOPT_POST, 1);
//On poste les données du tableau $postfields
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
//On définit un useragent ici Mozilla/5.0
//souvent les bots se font passés pour googlebot ce qui finalement est stupide
//On passe donc un useragent banal
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//on récupère le contenu de la page de résultat de la soumission dans une chaine
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// en cas de redirection (facultatif ici)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//Page de résultats et fermeture de session
$result = curl_exec($ch);
curl_close($ch);
 
//on peut faire un echo du résultat obtenu
echo $result;
?>

 

Explications du code :

CURLOPT_POST : permet d’utiliser la méthode POST à la place de la méthode GET qui est la méthode par défaut.

CURLOPT_POSTFIELDS : Les données à envoyer par la méthode POST sous la forme d’une chaîne (doivent être encodées) ou d’un tableau associant le nom du champ à sa valeur (cas ici).

CURLOPT_USERAGENT : Défini l’en-tête User-Agent pour la requête HTTP.

CURLOPT_REFERER : Renseigne l’en-tête Referer, la page d’où on provient en temps normal.

CURLOPT_RETURNTRANSFER : le contenu de la page distante est retourné sous la forme d’une chaîne par la fonction curl_exec.

CURLOPT_FOLLOWLOCATION permet de suivre les redirections de type « Location: ».

En savoir plus sur Curl et PHP.

Articles liés :

Commentaires (74)

Catégorie: Outils référencement,Scripts PHP


74 Commentaires

Commentaire par Aurélien

mercredi, 13 février , 2008 à 14:06

Hello Paul !

Tu vas faire des heureux avec ce post, je pense.

Commentaire par kickass

mercredi, 13 février , 2008 à 14:48

ouai pas mal l’article, je vais grandement m’en inspiré 🙂
Mais je suis blocker par un truc (alors peut être que j’en demande trop à mon script) :

mais peut-on faire un script qui va lancer une requête google, puis parcourir les site du résultat 1 à 1 .
Pendant la boucle qui parcours les site 1 à 1 , on peut ensuite utiliser ton code 🙂

Commentaire par Julien

mercredi, 13 février , 2008 à 15:48

Hmmm, merci beaucoup.
Je vais voir pour tester ça ^^

Commentaire par Acidifié

mercredi, 13 février , 2008 à 16:26

Cool et vraiment puissant!
Moi, je rajouterais un petit truc pour parser le de la description et choisir, selon un masque, la catégorie qui correspond le mieux…

Commentaire par alex de Referencement Blog

mercredi, 13 février , 2008 à 19:52

Salut Paul,

Va encore y avoir du spam d’annuaire 😀

Commentaire par Bert

jeudi, 14 février , 2008 à 5:38

Woola je découvre totalement et j’ai directement accroché sur « webdeveloper pour Firefox, celle-ci permet de convertir un formulaire POST en GET ».

Alors rien que ça, c’est que du bonheur 😉

Commentaire par Bert

jeudi, 14 février , 2008 à 5:47

Edit : Arf, mince je n’ai pas réussi à faire ce que j’voulais : choper l’URL avec l’ID de mon site en paramètre pour squatter quelques sections « boost » des annuaires freeglobes. Quelqu’un a une solution ?

J’ai tenté -http://demo.freeglobes.net/index.php?id=IDdeMonSite&action=update ou -http://demo.freeglobes.net/index.php?do=boost&id=IDdeMonSite&action=update mais ça ne passe pas

Commentaire par admin

jeudi, 14 février , 2008 à 6:30

@ Bert, regarde cet article : Spam top hits top votes, ça devrait répondre à ta question 😉

Commentaire par Bert

jeudi, 14 février , 2008 à 15:37

Je connais cet article 😉

Moi je veux juste automatiser le processus de soumission sur boost.html, afin de m’affranchir de la saisie de l’ID (donc de gagner du temps).

Commentaire par admin

jeudi, 14 février , 2008 à 19:13

Heu j’ai rien compris je crois 😆

Voilà ce que j’ai compris :

Ton site est déjà inscrit dans des annuaires freeglobes et tu souhaites récupérer automatiquement l’id de ton site pour ensuite toujours de façon automatique booster ton site sur les pages top votes et top visites des annuaires où ton site est inscrit, c’est bien ça ?

Commentaire par Bert

jeudi, 14 février , 2008 à 19:25

C’est presque ça.

Je connais l’ID de mes sites, no problem.

Je ne veux pas apparaître sur les pages top votes ou top visites mais sur toutes les pages, via le screenshot + title souvent présent en haut à gauche et nommé « Top Site ».

Pour ce faire, faut se rendre par exemple sur -http://demo.freeglobes.net/boost.html et renseigner manuellement l’ID de son site.

Ce que je recherche, c’est d’inclure l’ID de mon site dans l’URL pour qu’au clic ça place directement mon site dans le « Top Site » et qu’ainsi ça m’épargne l’étape manuelle.

Serait-ce plus clair ? 😉

Commentaire par admin

jeudi, 14 février , 2008 à 19:26

Kickass :

mais peut-on faire un script qui va lancer une requête google, puis parcourir les site du résultat 1 à 1 .
Pendant la boucle qui parcours les site 1 à 1 , on peut ensuite utiliser ton code

Oui on peut, tu parcoures les pages de Google une à une et tu extrais chaque url, je te conseille de les mettre en bdd (je publie un article dans la nuit avec le code qui permet d’extraire les urls de Google 😉 ). Tu extrais ensuite pour chaque url, la page de soumission et là tu peux utiliser le code présenté dans l’article, mais tu devras aussi régler le souci du choix de la catégorie, ou alors tu extrais pour chaque annuaire toutes les catégories et id de catégorie et tu mets en bdd aussi. Tu vas ensuite faire une recherche et ressortir uniquement les annuaires qui ont la catégorie souhaitée, si plusieurs catégories avec le même mot (blogs référencement et annuaire référéncement par exemple), ça pose souci. Plusieurs choix possibles, on peut choisir la première catégorie trouvée, on peut choisir la dernière ou alors on ajoute dans notre script la possibilité de choisir celle que l’on souhaite…

Commentaire par admin

jeudi, 14 février , 2008 à 19:45

@ Bert : Ok je comprends mieux 😆 je teste et poste le script dans la nuit 😉

Commentaire par Bert

jeudi, 14 février , 2008 à 19:52

Yeah, you’re a boss cher Paul 😉

Commentaire par admin

jeudi, 14 février , 2008 à 20:29

Ok voici le script :

<?php
$postfields = array();
$postfields["action"] = "update";
//id_google
$postfields["id"] = "45";
$postfields["submit"] = "OK";
$url = "http://demo.freeglobes.net/index.php?do=boost";
$useragent = "Mozilla/5.0";
$referer = $url; 
	
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);

echo $result;
?>

Commentaire par Bert

jeudi, 14 février , 2008 à 20:42

Ha yes, excellent, merci beaucoup 😉

Commentaire par Bilel

vendredi, 15 février , 2008 à 8:26

Ca me rappelle mes Gadgets associés à ma toolbar pour l’envoi automatique vers quelques annuaires automatiques !

Mais, sincèrement l’envoi en masse me fait peur du Sandbox 🙂

Commentaire par admin

vendredi, 15 février , 2008 à 18:14

Tu peux faire de l’envoi de masse, les webmasters d’annuaire ne valident pas tous au même moment…

Commentaire par karl

dimanche, 17 février , 2008 à 23:20

Quel générosité, c’est le genre de script que j’aurais gardé pour moi 🙂

Commentaire par DispoWeb

mardi, 19 février , 2008 à 2:23

héhé le bonheur des uns fait le malheur des autres 😛
Bravo pour l’article Tiger 😉

Commentaire par Didier_S

mercredi, 27 février , 2008 à 19:44

Bravo pour ce joli récap, Tiger!

Je me permets d’insister sur un point: toujours essayer de changer son user-agent quand on se sert de curl , celui par défaut est de la forme « User-Agent: curl/x.xx.x »… et on n’est rarement sensé soumettre des forms automatiquement 😉

Commentaire par vince

jeudi, 6 mars , 2008 à 7:38

Tu pourrais citer tes sources même si tu as fait du remachage:

-http://www.slightlyshadyseo.com/?p=43

Commentaire par admin

jeudi, 6 mars , 2008 à 15:05

Espèce de gros naze, tu mériterai que je ne publie pas ton commentaire, je ne me suis aucunement inspiré de cet article, ça fait plusieurs années que je pratique l’autosubmit, j’ai même donné mes scripts à des amis qui pourront témoigner ici si je leur demande. La prochaine fois avant de faire ton malin regarde bien les 2 articles. Sur ce j’ai ton ip je t’identifierai assez tôt 😉

Commentaire par admin

jeudi, 6 mars , 2008 à 15:06

Je me prend la tête à faire mes propres articles, et c’est pour ça que j’en publie pas beaucoup d’ailleurs, sinon j’irai pomper chez les ricains et à coup de trads, je pourrai en pondre des centaines comme le font plein de gars. Et maintenant voilà qu’un pauvre naze anonyme vient me prendre la tête, au fait tu sais qu’il y en a plein des articles sur Curl et la soumission auto et ce depuis des années ? t’aurai pu au moins choisir un article plus proche du mien que celui de XMPC. Sur ce dégage de mon site et ne revient pas. Je mets ici ton ip : 85.1.177.104 et je vais fouiller mes logs maintenant, on va voir qui est ce courageux anonyme et d’où il vient…

Commentaire par admin

jeudi, 6 mars , 2008 à 16:26

Ok un peu plus de détails sur toi :
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)

Tu sais aussi te faire passer pour googlebot :

85.1.177.104|6March2008|http://who-hosts.com/www.seoblackout.com|Googlebot 2,1

et tu utilises firefox aussi :

Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12

Je vais pouvoir facilement te retrouver mon grand, j’espère que tu ne fréquentes pas seosphere 😆

Tu peux toujours me mail pour t’excuser…

Commentaire par admin

jeudi, 6 mars , 2008 à 16:45

Ok je viens de t’identifier complètement, j’en suis sûr à 99 %, maintenant je vais te pièger pour avoir du 100 %. Au fait aides-moi, t’as bien un blog ? et ya le mot web-m.. dans le nom de domaine 😆

Et je suppose que c’est suite à un de mes commentaires sur ton blog, que tu viens ici essayer je ne sais quoi, j’ai tord ?

Pour te retrouver pas besoin d’ip, Vince m’a largement suffit avec un peu de Google, la prochaine fois change aussi le pseudo mon grand 😉

EDIT 7 mars, je me suis trompé, je sais maintenant qui tu es et je suis déçu, c’est pas sweet…. contrairement au nom de ton blog 🙁

Commentaire par Julien

mardi, 18 mars , 2008 à 14:16

Ecoute, ton script est tout simplement excellent!

Je ne te remercierai jamais assez! (J’te fais de la lêche parce qu’apparemment, faut pas trop t’énerver _ cf ci dessus lol)

Sérieusement, c’est le script rêvé pour tout référenceur, un grand merci pour ton travail.

Le seul truc qui me gêne c’est pour les captchas. Est-ce que tu connais un moyen de préremplir le formulaire par exemple, et qu’il reste juste à rentrer le captcha, appuyer sur le bouton « soumettre » et voilà… ? A noter que j’ai lu ton article sur le contournement des captchas, là c’est un peu fastidieux et aléatoire quand même…

Pour le moment je m’en sors avec un simple bouton « copy to clipboard », un peu plus long mais le travail est déjà bien mâché.

Commentaire par Julien

mardi, 18 mars , 2008 à 15:48

J’ai trouvé ^^

curl_setopt($ch, CURLOPT_POST,1)

Mettre un 0 à la place du 1 😀

Commentaire par Christophe

mercredi, 30 avril , 2008 à 20:01

Bonjour, votre script est très utile, cependant dans mon cas je dois pouvoir m’authentifier d’abord puis aller poster mon annonce (le site sur lequel je poste supprime les annonces après 24h ce qui m’oblige à la remettre à la main tous les matins :()

Dois je juste doubler votre code ?

1 / submit sur l’authentification
2 / submit sur la page des annonces

Merci pour votre aide !

Commentaire par admin

jeudi, 1 mai , 2008 à 2:36

Bonjour Christophe, ça doit être lié à une histoire de cookies, si vous voulez, vous pouvez m’envoyer l’adresse web par mail pour que je regarde si c’est complexe ou pas à développer.

Commentaire par nat

dimanche, 4 mai , 2008 à 0:36

Bonjour,

cela fait un petit moment que je me perds sur ce blog … enfin ..je me perds dans un certain plaisir à voir toutes ces astucieuses réflexions… en revanche depuis un petit moment je constate assez régulièrement que certains viennent essentiellement dans l’intention d’agresser l’auteur … se cachent derriere une fausse Ip … je ne savais pas que le référencement était un monde de requins… je suis surprise … Jalousie ? Ou Cupidité ?

Bref parfois je regrette que mon niveau de prog soit si bas parce que je trouve tous ces scripts stimulants .

Commentaire par admin

dimanche, 4 mai , 2008 à 20:15

Merci nat pour ton message qui fait plaisir 🙂

Concernant le souci que j’ai eu avec vince (cf commentaires ci-dessus) c’est réglé, il m’a mailé pour s’excuser et donc le sujet est clos. Peut-être que je me suis emporté aussi et que j’aurai dû simplement ne pas valider son message et passer à autre chose, mais sur le coup, cette intervention m’avait profondément énervé…

Concernant ton niveau de prog. n’hésites pas à demander quand tu ne sais pas, si je peux te répondre je le ferai, je ne suis pas non plus un bon dév. juste un bidouilleur qui arrive à ses fins…

Commentaire par nat

mardi, 6 mai , 2008 à 4:31

je sais il est tard …et j’entends d’ici vos questions ..mais que fait elle sur un blog si sulfureux à cette heure ci !!!??? Insomnie et internet font très bon ménage …Bref il est 3h00 du mat et j’installe une p’tite extension qui scanne le document et me donne la liste des mots clés , ses répétitions et son poids .. jusqu’à maintenant rien d’extraordinaire … Je vais sur Google pour tester et je tape « référencement » … normal …le soit disant ref rapide squatte toujours la première place ( entre parenthèses le graphisme est nul, sémantique d’un enfant de 10 ans … bref cela va à l’encontre de toutes les règles) … puis je descend mon regard et je clique sur (le mot clé en question).espace2001.com (vais pas faire un lien non plus !) et là … il faut que vous éclairiez ma lanterne ! Si j’étais une internaute (féminin quand tu nous tiens) je trouverais le site a c…. Bon passons … ma curiosité piquée .. Je regarde le nombre de pages indexées et là surprise 3 sur google et 18 sur yahoo ! Impossible une requête si concurrentielle : 5ieme position sur Google ! 603 liens pointant sur ce domaine sur Google et 42 558 selon Google ! je comprends mieux mais comment est ce possible ??? Que quelqu’un m’explique …

Il est 3h44 …. je vous souhaite une bonne journée …

PS : pour la répétition : « search » 182 fois, engine « 46 » fois, et « référencement 9 fois !

Commentaire par nat

mardi, 6 mai , 2008 à 4:33

désolé pour les paragraphes .. il est tard .. et c’est 45 558 selon yahoo bien sur .

Commentaire par boris

vendredi, 9 mai , 2008 à 12:48

Bonjour et merci pour ce script dont je me suis inspiré pour un site que je developpe.

Je me permet de poser une question pour régler un problème qui n’a pas beaucoup de rapport mais dont la solution est peut-être avec curl.

J’ai un menu sur mon site (frame1) dont les liens changent le contenu de la 2éme frame (grâce a ajax), contenu pouvant se trouver sur un autre serveur.

Le problème est qu’une page requiert une authentification, j’ai accès aux login et mdp sur ma bdd, j’applique donc ton script sur le lien externe, cela a l’air de marcher, mais toute la css, liens intra-site et cie ne marchent pas…

Est-ce normal? Qu’est ce que je n’ai pas compris ?

Merci beaucoup.

Commentaire par Gwaradenn

mardi, 1 juillet , 2008 à 15:02

Merci beaucoup, c’est vraiment terrible, en particulier ce que tu as pondu pour Bert 😉

Commentaire par Bert

mercredi, 2 juillet , 2008 à 11:52

Ha yes, code retrouvé Gwaradenn, enjoy alors et si « conflit de promotion », envoie-moi un petit MP, on s’arrangera 😉

Commentaire par d4web

mercredi, 9 juillet , 2008 à 15:54

question con mais juste pour info :
et si on voulait laisser des commentaire automatique sur un blog par exemple ça fonctionne ?

Commentaire par Bert

mercredi, 9 juillet , 2008 à 16:43

Bien sûr, comment font les spammeurs sinon 😉

La question est bien plus : comment fait-on non ?
Si oui, je n’ai pas la réponse.

Commentaire par admin

mercredi, 9 juillet , 2008 à 17:20

@Nat, La plupart des sites présents dans les premières pages pour la requête référencement pratiquent l’échange de liens d’une façon ou d’une autre et ce depuis plusieurs années déjà.

Espace2001 que tu cites, propose un service de référencement en échange d’un lien. D’autres proposent un script dans lequel ils placent leur lien, je pense notamment au fameux script d’échanges de liens. Certains trichent et font semblants de proposer un service de référencement dans des annuaires juste pour obtenir du BL mais ne font aucune inscription dans ces annuaires par exemple.
Avec le temps, ces sites ont acquis de l’âge, donc de la confiance auprès de Google mais aussi du backlink régulier issus de sources différentes, d’ips différentes. Age ndd + BLs réguliers => top positions.

Les autres sites présents mais ne pratiquant pas l’échange de liens sont soit wikipedia, soit des pionners sur la requête.

@Boris : la solution est dans les cookies, cherche sur google.com : php curl cookies

@d4web, comme dit Bert, bien sûr qu’à partir du moment ou on sait faire de la soumission automatique on peut soumettre tout type de formulaires et donc spammer les blogs… avec ce bout de code plus un script d’extractions d’urls de google en fonction d’un mot-clé ou commande google, tu fais ce que tu veux.

@Gwa: merci 😉

Commentaire par Jerome

dimanche, 13 juillet , 2008 à 22:18

Les sites de soumissions automatiques utilisent ce système ?

Le truc c’est que ça peut être intéressant pour ce faciliter la vie quand on référence un site mais si il faut à chaque fois récupérer le nom de tous les champs de formulaire de chaque annuaire (imaginons qu’on en prenne ne serait-ce que quelques centaines) cela fait un travail colossal. A moins que les champs de formulaire soit souvent les mêmes ?

Un site comme linkomatic utiliserait un procédé de ce type ?
C’est que je me verrais bien automatiser le référencement d’un de mes sites mais je me vois pas y passer des mois non plus sinon j’ai plus vite fait de l’inscrire directement 😀

Commentaire par Jerome

dimanche, 13 juillet , 2008 à 22:21

Je viens de penser (je peux pas éditer le commentaire précédent ?) je suppose que les annuaires sont tous tirés de scripts qui sont toujours plus ou moins les mêmes.

Cela resterait néanmoins un sacré travail a moins qu’il y’ai d’autres astuces pour automatiser les référencements 😀

En tout cas j’avais oublié de dire merci pour ce script

Commentaire par Xavier

mardi, 5 août , 2008 à 13:07

Je découvre ce site et ce script et je sens qu’il va finir dans mes bookmarks. 🙂

Je voulais juste dire qu’au boulot on nous a mis un formulaire à la con en HTML et je n’ai pas une folle envie de me palucher la saisie de fichier excel déjà existant. J’ai alors essayé d’adapter le script à mon cas, mais ça ne fonctionne pas.

J’essaie avec un site distant voir si ça marche mieux.

Merci en tout cas pour cet excellent billet.

Commentaire par zniko07

samedi, 13 septembre , 2008 à 14:15

Salut!
je viens de tomber sur ton article par hasard.
il y a quelques jours j’ai écrit un article qui ressemble un peu au tien.
c ici
il est cool ton blog!
a+!

Commentaire par admin

samedi, 13 septembre , 2008 à 18:59

Sympa ton tuto aussi 😉

Commentaire par sourivore

mardi, 16 septembre , 2008 à 20:25

Salut et bravo pour les explications.
Par contre j’ai un petit problème.
Je n’arrive pas à récupérer les variables données en POST car il y a une redirection juste après et la Web Toolbar ne fonctionne pas.
Aurais-tu un moyen simple de faire?

En fait sur le site -http://www.neopets.com, j’essaie de simuler une connexion avec mon login et mon mot de passe et d’afficher la page -http://www.neopets.com/market.phtml?type=your (qui nécessite donc une authentification).
Si quelqu’un pouvait voir comment faire car je bloque.

Pour le moment j’ai fait :

Merci beaucoup

Commentaire par Samba

jeudi, 2 octobre , 2008 à 10:43

Salut et merci mille fois pour ce script !

Je reprends la même question que Julien à posé un peu plus haut.

« Le seul truc qui me gêne c’est pour les captchas. Est-ce que tu connais un moyen de préremplir le formulaire par exemple, et qu’il reste juste à rentrer le captcha, appuyer sur le bouton “soumettre” et voilà… ? A noter que j’ai lu ton article sur le contournement des captchas, là c’est un peu fastidieux et aléatoire quand même… »

J’ai pourtant essayé sa solution disant de mettre une valeur :
curl_setopt($ch, CURLOPT_POST,1) à 0 mais ca ne change rien, le submit est actionné quand même et donc la soumission est toujours automatique. Je cherche donc à la rendre simplement semi-automatique en ayant les champs remplis uniquement.

Merci d’avance pour vos réponses ! 🙂

Commentaire par Mika

mardi, 18 novembre , 2008 à 0:00

Salut, j’ai l’impression de parler à mon cul mais bon, tu peux regarder :
-http://www.siteduzero.com/forum-83-340657-p1-curl.html

<?php
 
//d'abord on crée un fichier cookies.txt
 
$fp = fopen("cookies.txt",'wb');	
fclose($fp);
 
 
$postfields = array();
$postfields["action"] = "submit";
$postfields["postBack"] = "1";
$postfields["userlogin"] = $_POST['userlogin'];
$postfields["userpassword"] = "123456789";
$postfields["passwordconfirm"] = "123456789";
$postfields["email"] = $_POST['email'];
$postfields["nickname"] = $_POST['nickname'];
$postfields["sex"] = $_POST['sex'];
$postfields["birthyear"] = $_POST['birthyear'];
$postfields["country"] = $_POST['country'];
$postfields["captcha"] = $_POST['captcha'];
$postfields["newsletter"] = $_POST['newsletter'];
 
 
//url de la page de soumission
//ici mon annuaire (qui a un captcha donc inutile de tenter la soumission auto, c'est pour l'exemple)
$url = "https://www.dofus.com/fr/creer-un-compte";
$useragent = "Mozilla/5.0";
$referer = $url; 
 
 
//Initialise une session CURL
$ch = curl_init($url);
 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
 
//CURL options
curl_setopt($ch, CURLOPT_POST, 1);
//On poste les données du tableau $postfields
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
//On définit un useragent ici Mozilla/5.0
//souvent les bots se font passés pour googlebot ce qui finalement est stupide
//On passe donc un useragent banal
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//on récupère le contenu de la page de résultat de la soumission dans une chaine
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// en cas de redirection (facultatif ici)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//Page de résultats et fermeture de session
$result = curl_exec($ch);
curl_close($ch);
 
//on peut faire un echo du résultat obtenu
echo $result;
?>

Commentaire par Hervé

jeudi, 27 novembre , 2008 à 19:22

Arretez vos ouin ouin ça marche pas, ouin ouin comment on fait ci comment on fait ça… Cet article est déja assez explicite… débrouillez vous par vous même un peu ou payez vous un codeur !

Commentaire par bil

lundi, 22 décembre , 2008 à 20:23

Bonjour,
c’est cool cette méthode pour poster en automatique.
Mais comment récupérer automatiquement les différents champs des annuaires?
pour ensuite poster les données en automatique?

Commentaire par Kenshin

mardi, 30 décembre , 2008 à 19:00

c’est super ton site je crois pas mes yeux ,est ce que vraiment il y’a des gens qui sont si bons et si sympa ?
merci merci merci sans fin…

Commentaire par Mike

jeudi, 19 février , 2009 à 16:13

Bonjour,

C’est un super article mais j’ai du mal a voir comment on récupère l’action du formulaire. Dans ce cas c’est submit c’est facile mais un formulaire qui s’affiche comme ca dans le code source comment faire ?

Name:

Description:

Category:

URL to SWF/DCR:

Thumbnail URL:

Author Name:

Author Website:

Commentaire par Mike

jeudi, 19 février , 2009 à 16:15

Bonjour, Le code ne passe pas donc je recommence. Dans ce cas précis comment connait-on l’action a récupérer pour poster sur un formulaire ? Car dans l’exemple c’est le cas facile qui est montré.

form action= ‘http://monsite.com/’ method=’POST’

Commentaire par admin

jeudi, 19 février , 2009 à 23:51

Salut Mike,

Sers-toi de l’extension webdeveloper pour Firefox (voir image dans l’article ci-dessus). Tu gagneras du temps pour voir les variables et tu verras aussi quelle est la page de résultat de soumission.

J’ai trouvé sur Google un exemple de formulaire qui ressemble à celui que tu cherche à soumettre automatiquement :

-http://www.xxxxxxxxxxxxx.com/submit/form.html

Voici l’url de résultat de soumission :
-http://www.xxxxxxxxxxxxx.com

Et voici l’exemple de code pour soumettre :

<?php
$postfields = array();
$postfields["action"] = "submit";
$postfields["name"] = "TonNom";
$postfields["desc"] = "TaDescription";
$postfields["cat"] = "SEO";
$postfields["swf"] = "http://www.tonsite.com/tonflash.swf";
$postfields["thumb"] = "http://www.tonsite.com/tonthumb.jpg";
$postfields["authorname"] = "TonNom";
$postfields["authorsite"] = "http://www.tonsite.com/";
$postfields["params"] = "submit/do";
$url = "http://www.sitecible_pageresultatsoumission.com/";
$useragent = "Mozilla/5.0";
$referer = $url; 
 
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>

P;S : Dis-moi quand tu as lu le message que je puisse effacer l’url de l’exemple.

Commentaire par Mike

vendredi, 20 février , 2009 à 11:20

Salut,

Oui merci pour l’exemple tu peux effacer l’url c’est génial. Par contre il reste toujours un problème au niveau de la soumission. Je fais différents tests et reviens t’informer du résultat.

Mike

Commentaire par Mike8894

vendredi, 20 février , 2009 à 13:27

Hello, Ok ça fonctionne y’avait juste un petit ajustement à faire : ajouter index.php derrière l’url de soumission.

Ton forum est excellent bravo pour tout ce travail.

Commentaire par Cyril

mercredi, 11 mars , 2009 à 13:55

Je reviens juste sur l’ajout automatique du site dans la partie boost.

Cela fonctionne t’il encore avec les nouvelles versions de Freeglobes? Car je viens d’essayer sur un de mes annuaires, rien à faire, automatiquement cela ne passe pas.

Commentaire par Mickyserv

vendredi, 13 mars , 2009 à 9:23

Salut a tous,
Merci pour toutes ses informations, je tente de faire marcher ce script, mais je ne comprends pas tout. J’essaye de soumettre en automatique sur mon site qui utilise un script d’échange de liens automatiques, mais je n’ai pas de $postfields[« action »] = « submit »;
et l’idée est de soumettre sur tout les sites qui utilises l’échange de lien automatique (900 environs).
url de test : -http://www.ref-manager.com/
url de validation du script : -http://www.ref-manager.com/addlink.php

Merci à tous !!!

Commentaire par Alex

mercredi, 15 avril , 2009 à 11:48

Bonjour,
je tente de faire des redirections en utilisant curl.
Site en deux langues/2 DB indépendantes d’utilisateurs, la redirection se fait si un utilisateur d’une langue tente de se logguer a partir du site de l’autre langue.
Ainsi:
sur la page (disons anglaise) devant faire la redirection je fais:
$url = « http://monsite-fr.test/page.php »;
$postdata = array();
$postdata[‘membre_id’] = « ‘ ».$membre->id. »‘ »;
$sid =  »;
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_HEADER, 0);
curl_setopt($crl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_POST, true);
curl_setopt ($crl, CURLOPT_POSTFIELDS, $postdata);
$result = curl_exec($crl);
curl_close($crl);
echo $result;

de l’autre coté sur page.php, je veux créer une variable _SESSION à partir de la valeur passée en POST
if (isset($_REQUEST[‘membre_id’])){
$_SESSION[‘membre_id’] = $_REQUEST[‘membre_id’];
cela marche également, seulement, pour tous les liens de cette page, quand je les clique, sur les pages suivantes, la session change, le session_id() n’est plus le même.

j’ai également essayé d’exécuter curl vers une url en lui ajoutant ‘?PHPSSID=xxxx’ à la fin, même problème.

Donc ma question, est-ce qu’il esxiste un moyen de faire en sorte que la session soit conservée en utilisant cURL?

Merci pour toute aide…

Alex

Commentaire par ced

mercredi, 13 mai , 2009 à 12:15

certains annuaires de liens dur demandent un lien de retour;
pour bypasser; il suffit de faire quelque chose du genre :
<a href="<? $recurl; ?>"><? $recurl; ?></a>
pour votre template;
et d’appeler la variable $recurl dans le data du post :
$postfields[« recurl »] = « http://www.VOTRESITE.com/?recurl=http://www.LIEN_DE_RETOUR.com »;

la plupart font confiance a ce bidouillage et ne vérifie jamais;
des centaines de backlinks durables pour qq minutes de post
🙂

Commentaire par eliot39

dimanche, 17 mai , 2009 à 10:34

Salut, en fait j’ai le même probleme que mike, un site ou il n’y a pas de champ hidden. Le form est écrit de cette façon :

Ici la page de soumission est la même que celle du form et il n’ya pas de champ caché pour poster, comment faire ? merci

Commentaire par Jimmy

mercredi, 20 mai , 2009 à 0:28

Bonjour,

Pouvez vous m’expliquer comment installer le script pour la soumission automatique sur mon site internet svp.
J’arrive a mettre le formulaire mais ensuite je bloque 🙁

Est il possible aussi de le soumettre a plusieurs annuaire en meme temps ? car j’en ai plusieurs

Je vous remercie d’avance

Commentaire par SanOz

mardi, 8 septembre , 2009 à 7:53

Je voulais savoir, si cela fait exactement pareil que Selenium?
J’ai fait un script selenium pour un projet en interne et mon chef voulait absolument que j’utilise le formulaire pour acheter des produits et non pas directement l’url d’achat (https) car le formulaire a des stats derriere.
Est ce que ce script respecte cela?
hmm ok je suis pas tres claire …mais je tente

Commentaire par Vish

jeudi, 10 septembre , 2009 à 18:53

Bonjour,

Sympa ce code.
Par contre j’ai un problème lorsque je le teste dans google(http://www.google.fr) pour effectuer une recherche automatique .

La page qui s’affiche m’indique:
error 405
Method Not Allowed
The request method POST is inappropriate for the URL /.

Je n’arrive pas à transformer le code pour passer en method GET
Auriez vous une solution.
Merci d’avance.

Commentaire par CHAFIK

dimanche, 4 octobre , 2009 à 20:31

Bonjour je veux crée un script en forme de bot qui remplis automatiquement un formulaire
comme : -http://allosky.com/index.php la destination un formulaire de commentaires skyrock j’ais deja vue se script regarde se blogger il l’utilise : -http://Xxx-alex-officiel-xxX.skyrock.com/

Commentaire par CHAFIK

dimanche, 4 octobre , 2009 à 20:33

N’hesitez pas de me contacter par e-mail si vous avez des idée
surtout Monsieur l’Administrateur , je pense que vous etes experienté en language PHP merçi de me trouver le script !

merçi d’avance

Commentaire par CHAFID

jeudi, 8 octobre , 2009 à 21:09

es amis je galère!!
je dois recuperer les informations issues de ce site:lien

le seul soucis est que je dois simuler une selection dans un menu déroulant qui elle met à jour la page avec les données d’une date donnée. Donc j’essaye à partir de curl de selectionner une date et de rediriger la page avec la méthode décrite ici!!
le probléme ici est qu’il y a deux formulaires!peut etre que ca vient de la! peut etre que ca vient aussi du fait que c’est un select qui submit la page.bref je suis un peu bloqué

voici ce que j’ai fait:
$postfields = array();
$postfields[« recherche »] = « submit »;
$postfields[« Jour »] = « 07/10/2009 »;
$url = « http://clients.rte-france.com/lang/fr/clients_producteurs/vie/courbes.jsp »;
$useragent = « Mozilla/5.0 »;
$referer = $url;

//Initialise une session CURL
$ch = curl_init($url);
//CURL options
curl_setopt($ch, CURLOPT_POST, 1);
//On poste les données du tableau $postfields
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
//On définit un useragent ici Mozilla/5.0
//souvent les bots se font passés pour googlebot ce qui finalement est stupide
//On passe donc un useragent banal
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//On passe un referrer ici on passe la même page $url
curl_setopt($ch, CURLOPT_REFERER, $referer);
//on récupère le contenu de la page de résultat de la soumission dans une chaine
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// en cas de redirection (facultatif ici)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//Page de résultats et fermeture de session
$result = curl_exec($ch);
curl_close($ch);

//on peut faire un echo du résultat obtenu
echo $result;
ca serait sympa de me donner une piste! merci à tous

Commentaire par CHAFIK

vendredi, 9 octobre , 2009 à 21:32

quelqu’un peut me reponse SVP !

je veux crée un script en forme de bot qui remplis automatiquement un formulaire
comme : -http://allosky.com/index.php la destination un formulaire de commentaires skyrock j’ais deja vue se script regarde se blogger il l’utilise : -http://Xxx-alex-officiel-xxX.skyrock.com/

Commentaire par BOuich Ahmed

mercredi, 18 novembre , 2009 à 21:35

Tu peux mettre le nouveau script pour les nouveau annuaires freeglobes stp

Commentaire par Patrick

dimanche, 28 février , 2010 à 14:46

Bonjour,

Tout d’abord bravo pour cet article.
J’essaie de l’implémenter de la façon suivante.
J’ai 2 sites qui doivent lire la même database (située sur un des sites).
Je dois valider le meme code sur les 2 sites par l’intermédiaire d’un formulaire afin d’ouvrir une session valide sur les 2 sites.
Et la je bloque un peu.
Je voudrais valider automatiquement le formulaire sur le deuxième site quand je remplis celui du premier site.
Le formulaire à valider en curl est du type :

Enter your access ticket

Je fais :
$postfields[« CODE »] = xxxxxxx;

Mais je me doute que ce n’est pas suffisant !!!
Mais n’ayant pas, sur mon formulaire, de ligne du type :

Je ne vois pas comment valider le formulaire !
Quel postfileds dois-je ajouter ?

Un grand merci pour votre aide

Commentaire par Patrick

mardi, 2 mars , 2010 à 9:23

Toutes mes excuses. Le formulaire n’est pas affiché dans mon post probablement à cause des balises html.
Alors je le repost en supprimant les () et en les remplaçant par des (*).
J’ai également enlevé tout ce qui concerne la mise en page pour ne laisser que ce qui est « important » …

*form action= »/index/process-login/ » method= »POST »*

*b>Enter your access ticket</b*

*input type="text" size="10" maxlength="10" value="Ticket" name="CODE" onFocus="if (this.form.CODE.value=='Ticket') this.form.CODE.value=''" *

*input type="button" name="APsub" value="" onClick="this.form.submit(); this.form.APsub.disabled=true;" *

*/form*

Merci d'avance pour l'aide que vous pourrez m'apporter

Commentaire par HAMZA

samedi, 20 mars , 2010 à 12:26

Bonjour à tous,

j’aimerais bien savoir si je peux utiliser le script de cUrl dans un code java, car j’ai besoin de remplir des formulaires en ligne à partir de données existants dans ma BD.

merci d’avance pour votre aide.

Commentaire par Keeg

jeudi, 22 juillet , 2010 à 18:22

Bon, c’est quand même énorme, il y a de nombreuses possibilités. Là, j’ai fait quelques petites modifications. Je scrappe les URLs, et derrière submit auto en masse sur un type de form.

C’est violent.

Commentaire par Vince

mardi, 1 février , 2011 à 16:19

Hello,

Tout d’abord merci pour ce tuto qui est vraiment bien sympa 🙂

Par contre de mon coter j’ai un soucis, je tente de récupérer la météo sur le site de météofrance, mais impossible de faire soumettre le formulaire de base ;( Du moins j’arrive pas à lui faire pré remplir les champs :/

Si y’a moyen que tu jettes un rapide coup d’oeil, meteofrance faire des Location et redirige plusieurs fois mais bon rien n’y fait, j’affiche la page avec aucun des champs remplis 🙁

Les commentaires sont fermés pour cet article.



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !