繁体   English   中英

通过Selenium和phantomjs从动态URL下载文件

[英]Download file from dynamic url by selenium & phantomjs

我尝试编写一个网络爬虫,该爬虫通过动态网址下载CSV文件。

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

我将此网址放到了chrome浏览器中,但我立即开始下载,该页面不会更改。

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

我尝试了获取文件的方法

  1. 将网址放入硒中

    driver.get(url)

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

    requests.get(url)

两者都不起作用...

有什么建议吗?

输出两种方式:

  1. 我尝试截屏,但似乎没有改变页面。 (就像镀铬一样)

  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没有任何身份验证信息!

因此,我的解决方案是先通过硒获取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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM