2010-12-07 3 views
2

Мне нужно отправить формы и загрузить файлы на сайт с помощью командной строки Linux.Почтовые формы и загрузка файлов с использованием командной строки Linux

Я выполнил поиск, и я хотел бы написать скрипт в Python.

Мне нужно сначала войти на сайт, сохранить файлы cookie, а затем отправить данные формы и загрузить файлы на этот сайт.

Здесь детали: журнал

вебсайта в странице: 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> 

Страница загрузки является: 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> 

Эта форма содержит радио, текст, флажок, файл и т. д. ввод.

Пожалуйста, дайте мне подсказку!

Я использую CentOS 5.5, с установленным Python, wget, PHP. Я думаю, что это можно сделать в скрипте Python.

Большое спасибо! Ваш ответ будет лучшим рождественским подарком, который я получил. ;)

ответ

2

Для выполнения этой задачи вы, конечно, можете использовать urllib2. Прочтите документы о том, как обрабатывать файлы cookie и как загружать файлы. Однако, думаю, использование mechanize могло бы сэкономить много времени. Механизм позволяет обрабатывать веб-страницы, как если бы вы использовали браузер:

import mechanize 

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

etc. 
Смежные вопросы