简体   繁体   English

如何在zombie.js中保存可下载文件链接

[英]How to save the downloadable file link in zombie.js

I am scrapping a website using node.js and zombie.js. 我正在使用node.js和zombie.js抓取一个网站。 I am facing an issue where in a file I have an anchor which holds the link to download a pdf file. 我遇到一个问题,在文件中我有一个锚点,该锚点拥有下载pdf文件的链接。 If I click it using browser.clickLink() function, the result that I get in console is beyond my understanding. 如果使用browser.clickLink()函数单击它,那么进入控制台的结果将超出我的理解。 Is there a way to save this pdf file and have its link like in php? 有没有一种方法可以保存此pdf文件,并使其链接类似于php中的? I want to save it for further processing. 我想保存它以便进一步处理。 Here is my test js code 这是我的测试js代码

 var http = require('http'); var browser = require('zombie'); var assert = require('assert'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; //res.setHeader('Content-Type', 'text/plain'); //res.end('Hello World\\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); var url = 'http://localhost/Node/HM_LandRegistry/downloadPdf.html' browser.visit(url, function(error,browser) { //browser.dump(); //console.log('browser.text (".link")', browser.text(".link")); browser.clickLink("a.link"); browser.wait().then(function(){ console.log(browser.text()); browser.dump(); }); }); 

Here is something I found on google groups. 这是我在Google网上论坛上找到的东西。 It has solved my problem. 它解决了我的问题。

function getLinks(browser) {
 var links = browser.querySelectorAll('.link');
 return Array.prototype.map.call(links, function(e) {
 return e.getAttribute('href'); // returns an array. Use .toString() to get string only
});
}

Save the link 保存链接

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

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