2013-10-24 2 views
3

Мне нужно загрузить сотни файлов через html-форму, чтобы они оказались на сервере. У меня нет других вариантов и нужно пройти через форму.Автоматизация взаимодействия с браузером

Я попытался сделать это проблематично с помощью python, но я делаю что-то неправильно, и файлы пустые, когда я пытаюсь открыть их через веб-интерфейс. Я также попытался сделать повтор с помощью TamperData firefox, и в этом случае файл также будет загружен неправильно.

Так что мне интересно изучить идею загрузки файлов, автоматизируя мой браузер. Все, что мне нужно сделать, это:

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.

Я также не заботясь, какой браузер я использую.

+1

google silenium – alko

+0

silenium webdrive может помочь вам – timger

ответ

4

Splinter хорошо подходит для такого рода вещи:

http://splinter.cobrateam.info/

Вы могли бы сделать что-то вроде:

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... 

Вам просто нужно найти имя или идентификатор элемент, с которым вы хотите взаимодействовать, на странице

+0

Это лучшее решение, чем Selenium, потому что это более высокий уровень, чем Selenium. Кроме того, вы можете отлаживать его с помощью настольного браузера, а затем переключиться на PhantomJS, как только это будет сделано, чтобы ускорить его работу –

1

пожалуйста, ознакомьтесь с селеном: Это автоматизированный инструмент браузер (ведет себя как реальный пользователь)

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

Вы можете также, если вы больше обидчивый тип и понимать HTML написать свой собственный код питона только отправлять файлы на сервер с httplib2

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

для авто кликер попробовать autopy (это эмулирует мышь и ввод с клавиатуры)

http://www.autopy.org/