2012-01-12 73 views
2

我正在尝试创建一个将文件上传到网站的脚本。我无法控制网站,因此文件必须通过点击和输入进行上传。有没有办法用Python控制窗口?

阿卡,

  1. 等待上传窗口,弹出文件
  2. 类型名称/路径
  3. 点击 “打开” 或 “上传”(或其他)按钮

因为窗口是操作系统的一部分(不是浏览器窗口),所以我无法用Selenium或类似的东西来控制它(据我所知,如果我错了,请让我知道)。这意味着我需要脚本来做到这一点。

我已经在Windows上使用它(使用AutoIt创建它),但是我也需要它在Unix系统(Linux)上运行。

所以我问,有没有办法用Python或其他?如果我可以制作一个可以在两者上运行的脚本,那就太棒了(AutoIt仅适用于Windows)。我有Java,Python和AutoIt的知识,但如果这些都不能做到,我可以学到其他的东西。

谢谢。

编辑:

好了,显然是使用HTTP POST是为了做到这一点,但我不知道如何做到这一点。我会对此做更多的研究。 Thx @Chrules将此引起我的注意。

+4

当然你不能发送一个HTTP POST或GET请求到服务器? – Tehnix 2012-01-12 01:57:38

+0

是关于在Python屏幕上打开一些窗口的问题吗?然后PyGtk应该适合! – 2012-01-12 01:58:08

+0

Unn,我不熟悉HTTP POST和GET。我以前使用过GET,但从来没有POST,我也不认为POST可以发布整个文件。你能否给我举个例子说明我会如何做这样的事情? @BasileStarynkevitch不,窗口是由网站创建的(当网站要求您上传文件时,会出现一个窗口,询问文件的位置)。 – Nacht 2012-01-12 01:59:36

回答

2

既然您想通过HTTP请求来完成,那么强烈推荐使用Requests库。

这是真的那么简单:

>>> url = 'http://httpbin.org/post' 
>>> files = {'report.xls': open('report.xls', 'rb')} 
>>> r = requests.post(url, files=files) 
相关问题