Using Selenium with Python and PhantomJS to download file to filesystem

0
0

I’ve been grappling with using PhantomJS/Selenium/python-selenium to download a file to the filesystem.
I’m able to easily navigate through the DOM and click, hover etc. Downloading a file is, however, proving to be quite troublesome. I’ve tried a headless approach with Firefox and pyvirtualdisplay but that wasn’t working well either and was unbelievably slow. I know That CasperJS allows for file downloads. Does anyone know how to integrate CasperJS with Python or how to utilize PhantomJS to download files. Much appreciated.

  • You must to post comments
0
0

Despite this question is quite old, downloading files through PhantomJS is still a problem. But we can use PhantomJS to get download link and fetch all needed cookies such as csrf tokens and so on. And then we can use requests to download it actually:

import requests
from selenium import webdriver
driver
= webdriver.PhantomJS()
driver
.get('page_with_download_link')
download_link
= driver.find_element_by_id('download_link')
session
= requests.Session()
cookies
= driver.get_cookies()
for cookie in cookies:
session
.cookies.set(cookie['name'], cookie['value'])
response
= session.get(download_link)

And now in response.content actual file content should appear. We can next write it with open or do whatever we want.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website