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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过selenium和phantomjs从动态网址下载文件相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

  1. 将网址放入硒中 driver.get(url)
  2. 尝试通过请求lib获取文件 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登录网站,并使用请求下载文件。 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)

以上是关于通过selenium和phantomjs从动态网址下载文件的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容

使用scrapy爬虫,爬取今日头条首页推荐新闻(scrapy+selenium+PhantomJS)

动态网页爬取样例(WebCollector+selenium+phantomjs)

Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页