 |
|
Page 1 sur 1
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Posté le: Jeu Mai 16, 2013 10:52 pm Sujet du message: bot php curl |
|
|
TAMTAM
Projets

Inscrit le: 15 Oct 2012
Messages: 9
|
bonjour tt le monde
en ce momment je travail sur un projet tuteure, une app qui doit collecte des infos sur twitter et les represente avec un jgraph, j developpe un bot avec l'api de twitter , le hic c qu'on est extrêmement limite niveau roquette (150 par heure), en plus de ça l api retourne moins de résultat que prévue ( une histoire d adresse ip partage avec des sites internet derrière le proxy du fournisseurs ) donc je me suis met a développer un bot en dure , (vos imaginez la suite) ca marche pas ni pour twitter ni même sur le forum d’ailler ,c bizzare mais je commence a dote de curl , car par exemple , sur des site , je peut passer des arguments sa marche , mais des qu il s agit de poster des formulaire , rien de rien , je vous poste le code , vous en pensez quoi ?
merci par avance
 |
 |
<?php
curl_login('http://hackbbs.org/login.php','login=tamtam&password=*******&Connexion=Connexion','','off' );
echo curl_grab_page ('http://hackbbs.org/index.php','','off');
echo "hhhhhhhhhhhhhhhhh";
function curl_login ($url, $data, $proxy , $proxystatus){
$fp = fopen("cookie.txt", "w");
fclose ($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0;
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'on'){
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, true);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT']).
curl_setopt($login, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($login, CURLOPT_POST, true);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec($login);
ob_end_clean();// stop preventing output
curl_close($login);
unset($login);
}
function curl_grab_page ($site, $proxy, $proxystatus){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start();
return curl_exec($ch);
ob_end_clean();
curl_close ($ch);
}
?>
|
|
|
|
|
 |
Posté le: Ven Mai 17, 2013 10:49 am Sujet du message: |
|
|
SHEPSHEP
Projets
Inscrit le: 08 Avr 2009
Messages: 268
Localisation: /dev/null |
Salut TAMTAM,
Une petite présentation aurait été top...
Déjà à vue d’œil c'est coqué ici : curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0;
Je regarde plus en détail dès que j'ai un peu de temps. |
|
|
|
 |
Posté le: Ven Mai 17, 2013 10:57 am Sujet du message: |
|
|
SHEPSHEP
Projets
Inscrit le: 08 Avr 2009
Messages: 268
Localisation: /dev/null |
Si ton problème de syntaxe n'est pas un problème de copier/coller, utilise un éditeur PHP digne de ce nom qui te parsera ton code et lèvera les erreurs de syntaxe (NetBeans7.3 =>hxxps://netbeans.org/downloads/).
Sinon, je viens de tester ton code et il fonctionne ... |
|
|
|
 |
Posté le: Lun Mai 20, 2013 12:41 pm Sujet du message: |
|
|
TAMTAM
Projets

Inscrit le: 15 Oct 2012
Messages: 9
|
bonjour
merci pour la suggestion netbeans , je l'utilise déjà pour swing sous java , et j'ai suivi ton conseil pour php, une seule chose a dire, c top
sinon pour le code en effet avec un echo derrière la fonction curl_login() ça fonction , car avec l'autre fonction curl_grab() ça pose problème au niveau de cookie (sur le site y on a pas )
par contre le problème se pose toujours sur la page d'accueil de twitter , je capture la trame de requête http (je me connect avec firefox) sur la page de la session , je met les même paramètre dans le code , pourtant rien se passe
 |
 |
<?php
curl_login('https://twitter.com/sessions','session%5Busername_or_email%5D=projettwitt&session%5Bpassword%5D=*******&remember_me=1&return_to_ssl=true&scribe_log=&redirect_after_login=%2F&authenticity_token=0a55a93cef22e8f308a824ba95cdcb2c92ac8440','','off' );
echo "hhhhhhhhhhhhhhhhhc";
echo curl_grab_page ('https://twitter.com/','','off');
echo "hhhhhhhhhhhhhhhhh";
function curl_login ($url, $data, $proxy , $proxystatus){
$fp = fopen("cookie.txt", "w");
fclose ($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'on'){
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, true);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT']).
curl_setopt($login, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($login, CURLOPT_POST, true);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec($login);
ob_end_clean();// stop preventing output
curl_close($login);
unset($login);
}
function curl_grab_page ($site, $proxy, $proxystatus){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start();
return curl_exec($ch);
ob_end_clean();
curl_close ($ch);
} |
plus bizzare encore , le fichier cookie.txt est tjrs vide  |
|
|
|
 |
Posté le: Mar Mai 21, 2013 6:45 pm Sujet du message: |
|
|
TAMTAM
Projets

Inscrit le: 15 Oct 2012
Messages: 9
|
bonjour
j'ai du nouveau
ca y est , j arrive a me connecte et mĂŞme a remplir le fichier cookie.txt
ca marche sur facebook , enfin quand il décident de pas mettre de captcha, mais reste un problème, ça marche pas sur twitter , ça me retourne une réponse bizarre avec une erreur
 |
 |
HTTP/1.1 302 Found cache-control: no-cache, no-store |
une histoire de cache , vraiment étrange , en tous cas je sèche sur ce coup la aussi, si vos avez des pistes. |
|
|
|
 |
Posté le: Mer Mai 22, 2013 7:23 am Sujet du message: |
|
|
SHEPSHEP
Projets
Inscrit le: 08 Avr 2009
Messages: 268
Localisation: /dev/null |
Salut,
Le code HTTP 302 signale une redirection.
Cache-control est une entĂŞte HTTP.
"no-cache" spécifie qu'aucun cache (proxy, navigateur) ne doit être utilisé.
"no-store" spécifie que la requête et son résultat ne doivent pas être mises en cache.
Un peu de doc : hxxp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
Sinon, je ne vois pas trop se qui déconne, vérifie bien ton url, dump ton objet curl ...
++
2ShEp |
|
|
|
 |
Posté le: Jeu Mai 23, 2013 5:37 pm Sujet du message: |
|
|
TAMTAM
Projets

Inscrit le: 15 Oct 2012
Messages: 9
|
salut shepshep et bonjour a tt le monde
d abord merci mec de t' intéresse a se problème, qui m'empeche de dormir (jour de soutenance approche) , je met le code complet , par contre pour que ça marche , il faut capturer les trame http soit avec http requete sous firefox soit avec fiddler2 (mon préféré ) est ceci afin de remplir les champs de la fonction curl_login()
capture d'ecran de ce qui ce passe une fois que j'ai lance le code
http://imagik.fr/view/28955 (l image est a cote il faut agrandir)
la je donne le code qu'on vois la haut sur la page
 |
 |
HTTP/1.1
302 Found cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0 content-length: 156 content-type:
text/html; charset=utf-8 date: Thu, 23 May 2013 15:17:23 GMT expires: Tue, 31 Mar 1981 05:00:00 GMT last-modified: Thu, 23 May 2013 15:17:23 GMT
location: https://twitter.com/login/error?redirect_after_login=%2F&username_or_email=projettwitt pragma:
no-cache server: tfe set-cookie: _twitter_sess=BAh7CSIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%250ASGFzaHsGOgtub3RpY2VDOhdUcmFuc2xh
dGFibGVTdHJpbmciRU1hdXZhaXNl%250AIGNvbWJpbmFpc29uIGRlIE5vbSBkJ3V0aWxpc2F0ZXVyL0VtYWlsIGV0IG1v%250AdCBkZSBwYXNzZS4GOgpAdXNlZHsGOwZUOgxjc3JmX2lkIiV
hOTdiYzQ3Mjg2%250AYmNlZmY4ODAxMGZmOTMyNzlmYTI1MjoHaWQiJTRkYWYwOTZkYzVkZGNjMTlj%250AYzRkYjExNjA1MDE3ZWNjOg9jcmVhdGVkX2F0bCsIwUT30T4B--227f8ebe349f
8156911e775310afe54cd503a904;
domain=.twitter.com; path=/; HttpOnly set-cookie: guest_id=v1%3A136932224325184275; Domain=.twitter.com; Path=/; Expires=Sat, 23-May-2015 15:17:23 UTC status:
302 Found strict-transport-security: max-age=631138519 vary: Accept-Encoding x-frame-options: SAMEORIGIN x-mid: 020ba29ff29dba15505fc1dae0931184881dfc8e x-transaction:
a1a173c846f5a858 x-ua-compatible: IE=9,chrome=1 x-xss-protection: 1; mode=block HTTP/1.1
200 OK cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
content-length: 45739 content-type: text/html; charset=utf-8 date: Thu, 23 May 2013 15:17:23 GMT etag: "b77f4c4c96d76f8d6b439b4a4264e63b" expires: Tue, 31 Mar 1981 05:00:00 GMT last-modified:
Thu, 23 May 2013 15:17:23 GMT pragma: no-cache server: tfe set-cookie: _twitter_sess=BAh7CSIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%250ASGFzaHsABjoKQHVzZWR7ADoHaWQiJTRkYWYwOTZkYz
VkZGNjMTljYzRkYjEx%250ANjA1MDE3ZWNjOgxjc3JmX2lkIiVhOTdiYzQ3Mjg2YmNlZmY4ODAxMGZmOTMy%250ANzlmYTI1MjoPY3JlYXRlZF9hdGwrCMFE99E%252BAQ%253D%253D--b79ec5bb6a7579172e102d91608151d2d119d985;
domain=.twitter.com; path=/;
HttpOnly status: 200 OK strict-transport-security: max-age=631138519 vary: Accept-Encoding x-frame-options: SAMEORIGIN x-mid: c86b5e5a491d1e518704442571330c587e64f81f x-runtime:
0.04756 x-transaction: 010fd0cd53a53784 x-ua-compatible: IE=9,chrome=1 x-xss-protection: 1; mode=block
|
le code php
 |
 |
<?php
echo curl_login('https://twitter.com/sessions','session%5Busername_or_email%5D=projettwitt&session%5Bpassword%5D=*********&return_to_ssl=true&scribe_log=&redirect_after_login=%2F&authenticity_token=e438a9f55fg4t75t8tht2c1dc1b0f9b89mla','','off' );
echo "hhhhhhhhhhhhhhhhhc";
//echo curl_grab_page ('https://twitter.com','','off');
echo "hhhhhhhhhhhhhhhhh";
function curl_login ($url, $data, $proxy , $proxystatus){
$fp = fopen("cookie.txt", "w");
fclose ($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, realpath("./cookie.txt"));
curl_setopt($login, CURLOPT_COOKIEFILE,realpath("./cookie.txt"));
curl_setopt($login, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rb v:21.0) Gecko/20100101 Firefox/21.0");
curl_setopt($login, CURLOPT_TIMEOUT,100000);
curl_setopt($login, CURLOPT_RETURNTRANSFER, true);
if ($proxystatus == 'on'){
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, true);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT']).
curl_setopt($login, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($login, CURLOPT_POST, true);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec($login);
ob_end_clean();// stop preventing output
curl_close($login);
unset($login);
}
function curl_grab_page ($site, $proxy, $proxystatus){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
return curl_exec($ch);
curl_close ($ch);
}
|
sinon je pense que je suis pas loin , j tous met en curl , surtout l option pour le https et les redirections , le fichier cookie se remplie bien ....etc
il y a juste cette histoire de cache sans oublie ( c sur l'image ) sa me met un message bizare du genre comme quoi il y a une erreur de combinaison entre le mot de passe et le login
a toute  |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
 |
|
Page 1 sur 1
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|