通过selenium和phantomjs从动态网址下载文件

问题描述 投票:0回答:2

我正在尝试编写一个通过动态网址下载CSV文件的网络抓取工具。

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

我把这个网址放到我的Chrome浏览器中,但我刚开始立即下载,页面也不会改变。

我甚至无法在开发屏幕中找到任何请求。

我试图找到获取文件的方法

  1. 将网址放入硒中 driver.get(url)
  2. 尝试通过请求lib获取文件 requests.get(url)

两者都不起作用......

有什么建议?

输出两种方式:

  1. 我试图获得屏幕截图,似乎不会改变页面。 (就像镀铬一样)
  2. 我尝试打印出我得到的数据,它看起来像html文件。 然后在浏览器中打开它,它是一个登录页面。
python selenium phantomjs
2个回答
0
投票

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)  

0
投票

谢谢大家的帮助! 我终于发现问题是...... 我通过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)
© www.soinside.com 2019 - 2024. All rights reserved.