4

我需要通过 html 表单上传数百个文件,以便它们最终在服务器上。我没有其他选择,必须通过表格。

我曾尝试使用 python 执行此操作,但我做错了,当我尝试通过 Web 界面打开它们时文件为空。我还尝试通过 firefox 的 TamperData 进行重播,在这种情况下文件也上传不正确。

所以我有兴趣通过自动化浏览器来探索上传文件的想法。我需要做的就是:

for file in files:
   open a page 
   click on the browse button 
   select a file
   click the upload button

那么我可以使用什么软件/库来做到这一点?我不一定需要使用 python 来做这件事,因为我以后再也不需要这样做了。我只需要以任何可能的方式将文件放在那里。

我可以访问 Windows 7、Mac Os X 和 Suse Linux。

我也不在乎我使用哪种浏览器。

4

2 回答 2

6

分裂适用于这种事情:

https://github.com/cobrateam/splinter

您可以执行以下操作:

from splinter import Browser

with Browser('firefox') as browser:
    browser.visit('http://yourwebsite.com')
    browser.find_by_name('element_name').click()
    do some other stuff...

您只需要在页面上找到要与之交互的元素的名称或 ID

于 2013-10-24T09:06:54.273 回答
1

请查看 selenium:它是一个自动化的浏览器工具(表现得像一个真实的用户)

http://selenium-python.readthedocs.org/en/latest/

如果您更懂技术并且了解 html,您也可以编写自己的 python 代码,仅使用 httplib2 将文件发送到服务器

https://code.google.com/p/httplib2/

对于自动点击器,请尝试 autopy(模拟鼠标和键盘输入)

http://www.autopy.org/

于 2013-10-24T08:56:20.947 回答