通过 selenium & phantomjs 从动态 url 下载文件

Download file from dynamic url by selenium & phantomjs

我正在尝试编写一个通过动态 url.

下载 CSV 文件的网络爬虫

url就像http://aaa/bbb.mcv/Download?path=xxxx.csv

我把这个 url 放到我的 chrome 浏览器上,但我立即开始下载,页面不会改变。

我什至在开发屏幕上找不到任何请求。

我已经尝试了获取文件的方法

  1. 将 url 放入 selenium

    driver.get(url)

  2. 尝试通过请求库获取文件

    requests.get(url)

两个都不行...

有什么建议吗?

两种方式输出:

  1. 我尝试获取屏幕截图,但似乎并没有改变页面。 (就像 chrome)

  2. 我试着打印出我得到的数据,它看起来像 html 文件。
    然后用浏览器打开是登录页面

import requests

url = '...'
save_location = '...'

session = requests.session()

response = session.get(url)
with open(save_location, 'wb') as t:
    for chunk in response.iter_content(1024):
        t.write(chunk)  

感谢大家的帮助!
我终于发现问题是...
我通过 selenium 登录网站并使用请求下载文件。
Selenium 没有任何身份验证信息!

所以我的解决方案是先通过 selenium 获取 cookie。
然后将其发送到请求中!

这是我的代码

cookies = driver.get_cookies() #selenium web driver

s = requests.Session()
for cookie in cookies:
    s.cookies.set(cookie['name'], cookie['value'])
response = s.get(url)