Utiliser Python pour vous connecter au site Web, remplir un formulaire, puis vous déconnecter
Dans le cadre de ma quête pour devenir meilleur en Python, je suis en train d'essayer de vous connecter à un site web que je fréquente, envoyez moi un message privé, et ensuite signer. Jusqu'à présent, j'ai réussi à faire signer à l'aide de urllib, cookiejar et urllib2). Cependant, je ne peux pas travailler sur la façon de remplir le formulaire pour envoyer moi un message.
La forme est situé à /messages.le php?action=envoyer. Il y a trois choses qui doivent être remplis pour que le message à envoyer: trois champs de texte nom, le titre et le message. En outre, il ya un bouton de soumission (nommé "soumettre").
Comment puis-je remplir ce formulaire et de l'envoyer?
source d'informationauteur Matthew
Vous devez vous connecter pour publier un commentaire.
il suffit de remplacer
http://www.abc.com/messages.php?action=send
avec l'adresse à laquelle votre demande est transmiserépondre à votre commentaire: si l'url est l'url de votre formulaire est situé, et que vous avez besoin de le faire juste pour un seul site web, regardez le code source de la page et de trouver
et de mettre cette adresse en tant que paramètre pour
urllib2.urlopen
Et vous avez à réaliser ce que
submit
bouton.Il suffit d'envoyer un
Http
demande à l'url définie paraction
dans le formulaire.Donc, ce que vous avez à faire est de simuler cette demande avec
urllib2
Vous voulez le mécaniser de la bibliothèque. Cela vous permet de facilement automatiser le processus de navigation des sites web et l'envoi de formulaires/liens suivants. Le site, je suis lié à a assez de bons exemples et de la documentation.
Vous pouvez utiliser mécaniser pour travailler facilement avec cette. Cela permettra de faciliter votre travail de soumettre le formulaire. N'oubliez pas de vérifier avec les paramètres tels que le nom, le titre, le message par voir le code source du formulaire html.
Essayer de travailler sur les demandes qui sont faites (en utilisant par exemple le Chrome web developer tool ou avec Firefox/Firebug) et d'imiter la requête POST contenant la forme souhaitée des données.
En plus de la grande mécaniser la bibliothèque mentionné par Andrew, dans le cas où je voudrais aussi vous suggère d'utiliser BeautifulSoup de parser le HTML.
Si vous ne voulez pas utiliser de mécaniser, mais veulent toujours facile, propre solution pour créer des requêtes HTTP, je recommande la excellend les demandes module.
À publier des données sur la page web, utilisez cURL quelque chose comme cela,
curl -d Name="Shrimant" -d title="Hello world" -d message="Hello, how are you" -d Form_Submit="Send" http://www.example.com/messages.php?action=send
Le “-d” option indique à cURL que l'élément qui est certains, les données sont envoyées au serveur à http://www.example.com/messages.php?action=send