相关疑难解决方法(0)

如何使用PhantomJS下载csv文件

当我使用普通浏览器(Chrome)浏览网站A时,当我点击网站A上的链接时,Chrome会以CSV文件的形式下载报告.

当我检查服务器响应头时,我得到以下结果:

Cache-Control:private,max-age=31536000
Connection:Keep-Alive
Content-Disposition:attachment; filename="report.csv"
Content-Encoding:gzip
Content-Language:de-DE
Content-Type:text/csv; charset=UTF-8
Date:Wed, 22 Jul 2015 12:44:30 GMT
Expires:Thu, 21 Jul 2016 12:44:30 GMT
Keep-Alive:timeout=15, max=75
Pragma:cache
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
Run Code Online (Sandbox Code Playgroud)

现在,我想使用PhantomJS下载并解析此文件.我设置了page onResourceReceived监听器,看看Phantom是否会接收/下载该文件.

clientRequests.phantomPage.onResourceReceived = function(response) {
    console.log('Response (#' + response.id + ', stage "' + response.stage + '"): ' + JSON.stringify(response));
};
Run Code Online (Sandbox Code Playgroud)

当我发出Phantom请求下载文件时(这是page.open('文件的URL')),我可以在Phantom日志中看到该文件已下载.这是日志:

"contentType": "text/csv; charset=UTF-8",
    "headers": {
        "name": "Date",
        "value": "Wed, 22 Jul 2015 12:57:41 GMT"
    },
    "name": "Content-Disposition",
    "value": "attachment; filename=\"report.csv\"",
    "status":200,"statusText":"OK"
Run Code Online (Sandbox Code Playgroud)

我收到了文件及其内容,但是如何访问文件数据?当我打印当前的PhantomJS page对象时,我得到了页面A的HTML而我不希望这样,我想要CSV文件,我需要使用JavaScript解析它.

javascript http download phantomjs

17
推荐指数
2
解决办法
2万
查看次数

如何使用casperjs从XHR响应中捕获和处理数据?

网页上的数据是动态显示的,似乎检查html中的每个更改并提取数据是一项非常艰巨的任务,还需要我使用非常不可靠的XPath.所以我希望能够从XHR数据包中提取数据.

我希望能够从XHR数据包中提取信息,并生成要发送到服务器的"XHR"数据包.提取信息部分对我来说更重要,因为可以通过使用casperjs自动触发html元素来轻松处理信息的发送.

我附上了我的意思截图.在此输入图像描述

响应选项卡中的文本是我之后需要处理的数据.(已从服务器收到此XHR响应.)

ajax google-chrome web-scraping phantomjs casperjs

12
推荐指数
2
解决办法
1万
查看次数

如何下载和保存PDF文件,该文件在PhantomJS的响应标题中作为附件接收?

我正在尝试使用PhantomJS下载一些PDF文件.当我单击提交按钮时,没有用于下载PDF的直接URL,因为它调用了一些内部JavaScript函数.

这是我用来下载PDF文件的代码:

 page.open(url, function(status){
     page.evaluate(function(){
         document.getElementById('id').click();
     });
 });
 page.onResourceReceived = function(request){
     console.log('Received ' + JSON.stringify(request, undefined, 4));
 };
Run Code Online (Sandbox Code Playgroud)

'id'是提交按钮的元素id.这里的问题是,即使我得到响应(内部onResourceReceived回调)作为JSON格式,但我无法将附件保存为某些PDF文件.

当我运行上面的代码时,我得到以下输出作为JSON字符串:

 Received {
    "contentType": "application/pdf",
    "headers": [
        // Some other headers.
        {
            "name": "Content-Type",
            "value": "application/pdf"
        },
        {
            "name": "content-disposition",
            "value": "attachment; filename=FILENAME.PDF"
        },
    ],
    "id": 50,
    "redirectURL": null,
    "stage": "end",
    "status": 200,
    "statusText": "OK",
    "url": "http://www.someurl.com"
}
Run Code Online (Sandbox Code Playgroud)

请使用PhantomJS建议解决方案.谢谢!

javascript phantomjs

12
推荐指数
1
解决办法
6228
查看次数

CasperJS - 下载没有URL的生成文件

我一直在努力解决这个问题.

我正在尝试下载由Google Adwords"下载报告"按钮生成的CSV文件.我可以点击链接,然后在后台查看资源.问题是,为了下载它,casperJS/phantomJS需要一个文件的URL ...但CSV是在现场生成的,并且与我所在的页面具有相同的URL(在该链接之后只会引导您到达主页,而不是CSV文件所以casperJS无法下载它).

有没有办法在没有URL的情况下保存该资源?

我发现了这个解决方法:在PhantomJs中下载POST请求响应中附件的文件

但不幸的是,谷歌Adwords报告按钮没有我可以参考的形式.

javascript csv download phantomjs casperjs

11
推荐指数
1
解决办法
1548
查看次数

casperjs下载csv文件

我正在尝试使用以下代码从站点下载csv文件(广告报告).问题是,它将下载HTML页面而不是csv文件.我无法提供登录后面的URL,但是从下面的URL下载Firefox时情况类似

http://www.mozilla.org/en-US/firefox/new/

这是一个GET请求,当我检查元素Network Tab时,get请求被取消.我是Casper的新手,不知道如何处理这些请求.任何帮助,将不胜感激

casper.then(function() {
   var downloadURL = "";

  this.evaluate(function() {
      var downloadURL = "http://www.lijit.com"+jQuery("#dailyCSV").attr('href'); 
   });

   this.download(downloadURL, '/Users/Ujwal/Downloads/caspertests/stats.csv');
});
Run Code Online (Sandbox Code Playgroud)

响应标题

Age:0
Cache-Control:max-age=0
Connection:keep-alive
Content-Disposition:attachment; filename=stats.csv
Content-Encoding:gzip
Content-Length:1634
Content-Type:text/x-csv
Date:Sat, 05 Oct 2013 15:28:21 GMT
Expires:Sat, 05 Oct 2013 15:28:21 GMT
P3P:CP="CUR ADM OUR NOR STA NID"
Server:PWS/8.0.16
Vary:Accept-Encoding
X-Px:ms h0-s28.p9-jfk ( h0-s62.p9-jfk), ms h0-s62.p9-jfk ( origin>CONN)
Run Code Online (Sandbox Code Playgroud)

phantomjs casperjs

10
推荐指数
1
解决办法
1万
查看次数

带有下载功能的无头浏览器测试?

我一直在寻找在osx中​​进行无头测试的解决方案.但我需要能够保存服务器返回的文件.

我测试了selenium,phantomjs,casperjs,并研究了我能在网上找到的任何东西.

他们都不支持下载.我错过了什么吗?有没有支持下载的无头浏览器/测试框架?

selenium headless-browser phantomjs casperjs

7
推荐指数
1
解决办法
5911
查看次数