2010-12-07 21 views
2

Je dois envoyer des formulaires et télécharger des fichiers sur un site Web à l'aide de la ligne de commande Linux.Publication de formulaires et chargement de fichiers à l'aide de la ligne de commande Linux

J'ai fait une recherche, et j'aimerais écrire le script en Python.

Je dois d'abord ouvrir une session sur le site Web, enregistrer les cookies, puis publier les données du formulaire et télécharger des fichiers sur ce site.

Voici les détails:

en page est le journal du site: hxxp://www.example.com/login.html

<form action="/signin.html" method="post"> 
Username:<input type="text" name="username"> 
Password:<input type="password" name="password"> 
<input type="hidden" name="referer" value="http://www.example.com/"> 
<input type="submit" name="submit" value=" Login "> 
</form> 

La page de téléchargement est: hxxp://www.example.com.com/upload/

<form action="http://www.example.com:81/upload/upload.cgi" enctype="multipart/form-data" method="post"> 
<input type="hidden" name="MAX_FILE_SIZE" value="314572800" /> 

File: 
<input name="filename[]" type="file" /> 
Type: 
<input type="radio" name="typeID" value=1> Option One 
<input type="radio" name="typeID" value=2> Option Two 
<input type="radio" name="typeID" value=3> Option Three 
Title: 
<input type="text" name="title" > 
Description: 
<textarea name="description"></textarea> 

<input type="checkbox" name="agree" value="agree_terms"> I Accept Terms 

<input type="submit" value="Upload It!"> 
</form> 

Ce formulaire contient la radio, le texte, case à cocher, fichier etc entrée.

S'il vous plaît donnez-moi un indice! J'utilise CentOS 5.5, avec Python, wget, PHP installé. Je pense que cela peut être fait en script Python.

Merci beaucoup! Votre réponse sera le meilleur cadeau de Noël que j'ai reçu. ;)

Répondre

2

Vous pouvez bien sûr utiliser urllib2 pour accomplir cette tâche. Lisez les documents sur la façon de traiter les cookies et comment télécharger des fichiers. Cependant, je pense qu'en utilisant mechanize pourrait gagner beaucoup de temps. Mechanize vous permet de gérer les pages Web comme si vous utilisiez un navigateur:

import mechanize 

br = mechanize.Browser() 
br.open("http://www.example.com/") 
br.select_form() 
br['username'] = 'user' 
br['password'] = 'pass' 
br.submit() 

etc.