Jodd, construire bot Facebook en 2 heures faciles
Pour démontrer la puissance de Jerry (jQuery en Java), nous avons créé un petit robot Facebook, juste deux heures, et juste pour le fun :) La tâche était de créer un bot qui:
- connecter à votre compte Facebook,
- la liste des propositions d'amis, et
- envoyer quelques demandes « Ajouter un ami ».
Étant donné que l'idée était d'utiliser Jerry. nous ne sommes pas en utilisant l'API Facebook, autorisation OAuth etc; Par ailleurs API Facebook ne fournit pas toutes les fonctionnalités disponibles sur le but. Juste bon vieux envoyer la demande - obtenir une réponse - analyser, analyser, technique parse.
Note: le but de cette pratique est purement éducative. Nous ne voulons pas faire de mal, enfreindre une loi, tuer un chiot etc. Si nous faisons violer quelque chose, s'il vous plaît laissez-nous savoir. et nous ferons toutes les mesures nécessaires. Merci de votre compréhension!
Encore une fois, ceci est juste une pratique et le code résultant et la conception n'est pas le meilleur possible. Maintenant, nous allons commencer la clockwatch!
00 heures 00-00h10 Mise en place projet
La première étape consiste à mettre en place le projet Java dans notre IDE (IntelliJ IDEA). Nous avons juste besoin de deux ensembles bibliothèque:
Ceci est juste un warm-up. Ensuite, vérifier si Firefox et le plugin Firebug sont installés et fonctionnent. Nous aurons besoin plus tard Firebug pour analyser le contenu HTML et renifler les demandes.
Cet exemple utilise lib 3ème partie (HttpClient). Voir exemple similaire construire uniquement avec Jerry et Http.
0:11 - 0:55 outils de connexion HTTP
Permet de créer quelques méthodes simples utilitaires liés HTTP-sur HttpClient. En gros, nous avons besoin de deux méthodes, un pour envoyer la demande GET et l'autre pour envoyer une requête POST. Cependant, ce n'est pas si trivial que cela puisse paraître.
Tout d'abord, nous devons penser à la session, à savoir les cookies. Chaque demande doit envoyer et recevoir des cookies de l'hôte. Donc, chaque fois que nous envoyons une demande, nous avons besoin de passer précédents cookies. Cette simulera session utilisateur dans le navigateur. Ensuite, notre demande doit être en mesure de suivre redirige automatiquement. Et oublions pas PREF-tête « User-Agent », si l'hôte Facebook ne nous refuse automatiquement.
Après quelques essais et erreurs, nous venons avec cette interface - ce n'est pas parfait, mais il fonctionne:
Pour plus de détails de mise en œuvre, vous pouvez télécharger la source complète. La classe de réponse est un simple grain qui recueille plusieurs produits de réponse HTTP d'intérêt: retour du contenu HTML, ligne d'état et les cookies.
0:56 - 1:00 méthodes de haut niveau
La principale méthode doit être simple:
1:01-1:15 Connectez-vous à Facebook
L'idée est de charger principale page Facebook, trouver le formulaire de connexion et de prendre tous les paramètres d'entrée. Définissez ensuite le nom d'utilisateur et mot de passe et poster le formulaire. Après une analyse rapide de la première page, nous constatons que le formulaire de connexion a l'ID suivant: #login_form. Donc, nous allons enfin voir Jerry en action:
Comme l'a dit: trouver la forme, obtenir tous les paramètres de formulaire, email et mot de passe mis, et enfin, poster le formulaire. Ne pas oublier les cookies! Sur la première (GET) demande, nous recueillons des cookies qui sont passés dans la deuxième demande (POST). Voyons voir comment collecter les paramètres de formulaire:
Cette méthode est triviale et non complète. Vous devez utiliser la méthode sous forme () de Jerry; que l'on retourne tous les paramètres, y compris la valeur des listes de sélection, cases à cocher, etc. textareas
1:16 - 1:20 Trouver des amis
Celui-ci est simple: il suffit de charger la page « » trouver des amis sur facebook. Bien sûr, nous avons encore besoin de passer les cookies pour maintenir la session. Jerry ne fonctionne pas ici :)
1:21 - 1:35 liste d'amis
Celui-ci est pas si difficile. Nous avons juste besoin de parcourir la liste des recommandations d'amis. Cependant, nous devons trouver un peu plus de données: ID utilisateur facebook, l'identifiant de forme (utilisé comme bouclier CSRF) et l'ID facebook de chaque ami. Merci à Jerry. c'est facile:)
Comme nous ne voulions pas le spam et inviter tous les amis à la fois, nous passons la numberOfFriendsToInvite. c'est le nombre d'amis de haut la liste qui seront invités. Ainsi, par exemple, si vous passez « 3 », ne seront ajoutés trois premiers amis, le reste sera juste dans la liste.
1:36-2:00 Ajouter des amis

Maintenant, les choses vont mieux - nous avons juste besoin d'envoyer une requête POST comme indiqué ci-dessus. Ainsi, la dernière pièce du code est le suivant:
Maintenant ... détendez-vous
Après deux heures de codage, vous avez mérité une pause;) Lancez le bot et le voir en action:
Et ... les demandes d'amitié sont envoyés :)
Si vous êtes intéressé par plus de détails de mise en œuvre, vous pouvez télécharger le code source complet. Encore une fois, ceci est juste un code rapide n-sale, codé en deux heures.
Précédent: Exemples: Jerry Suivant navigateur Facebook avec Jerry Http