我需要使用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脚本完成。
非常感谢!你的答案将是我收到的最好的圣诞礼物。 ;)
答案 0 :(得分:2)
您当然可以使用urllib2
来完成此任务。阅读有关如何处理cookie以及如何上传文件的文档。但是,我认为使用mechanize
可以节省大量时间。通过Mechanize,您可以像使用浏览器一样处理网页:
import mechanize
br = mechanize.Browser()
br.open("http://www.example.com/")
br.select_form()
br['username'] = 'user'
br['password'] = 'pass'
br.submit()
etc.