2014-02-18 2 views
4

У меня есть URL, с которым я хочу регулярно скачивать. Его можно получить только из зарегистрированной учетной записи, для которой требуется поддержка JavaScript, и поэтому я вынужден использовать Selenium с PhantomJS, поверьте мне. В противном случае, я бы просто использовал urllib для этого, но он дает мне знак ошибки.Загрузить CSV с URL в Selenium?

Это файл CSV, содержащий не более 1000 строк и около 6 столбцов.

Я хочу, чтобы в конечном итоге получить этот CSV в список. Кто-нибудь знает, как загрузить CSV с помощью Selenium Webdriver?

Большое спасибо.

Редактировать: Я просто хочу загрузить CSV из URL-адреса в Selenium. Ничего больше.

+0

Можете ли вы предоставить URL, и фиктивное имя пользователя + пароль, а затем сказать, где кнопка загрузки/ссылка расположена? –

+0

BTW, загрузка CSV довольно проста с Selenium. Основная проблема заключается в том, как обрабатывать всплывающее окно «Сохранить как», которое обычно генерирует браузер. –

+0

Платформа, которую я использую, не имеет никакого отношения к вопросу. Мне просто нужен общий способ загрузки CSV из URL-адреса в Selenium. Да, после открытия URL-адреса появится диалоговое окно «Сохранить как». Если вы хотите, чтобы URL-адрес тестировался, вот один из них: http://winterolympicsmedals.com/medals.csv – User

ответ

1

его на самом деле довольно простой. С помощью другого ответа я дал в стек над потоком

https://stackoverflow.com/a/21871600/2423379

EDIT: Запуск Firefox в Безголовый режиме

Требования:

  • sudo apt-get install xvfb (или эквивалент команды в Уре дистрибутиве)
  • pip install --user xvfbwrapper

И часть кода

from xvfbwrapper import Xvfb 

vdisplay = Xvfb() 
vdisplay.start() 

# launch stuff inside virtual display here 

vdisplay.stop() 

Ref: Firefox-selenium in headless mode

+0

Спасибо, однако я использую PhantomJS вместо Firefox, так как мне нужно, чтобы он был без заголовка. – User

+1

У меня было подобное требование. Однако я не смог выполнить загрузку csv с помощью PhantomJS. Но яркая сторона заключается в том, что вы можете использовать Firefox в режиме безголовы ... это то, что я делаю прямо сейчас. Я обновил свой ответ, чтобы отразить это. – goofd

1

Как насчет page_source атрибут?

browser.get("http://winterolympicsmedals.com/medals.csv") 
csv_file = browser.page_source 
print(csv_file) 

Попробуйте это, мой друг. Я использую Selenium + Python + HTMLUnit, работающий, как ветер.

Надеется, что это работает для PhantomJS

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