我正在尝试找到定位PDF下载链接的最佳方法,并将其下载到我计算机上的正确目录中。我正在尝试使用CasperJS& XPath,因为它似乎是最简单的方法。
目前我所拥有的:
var x = require('casper').selectXPath;
var fs = require('fs');
casper.start('http://www.regulations.gov/#!documentDetail;D=APHIS-2012-0047-0291');
var classVal = x("//a[@class='gwt-Anchor']/@href");
casper.download(classVal, 'C:/users/bnickerson/desktop/script/result/p.pdf');
每当运行时,它会下载一个文件,但它的html文件名为p.pdf。如果我打开它,我明白了:
HTTP Status 404 - /%5Bobject%20Object%5D
type Status report
message /%5Bobject%20Object%5D
description The requested resource (/%5Bobject%20Object%5D) is not available.
JBoss Web/7.0.17.Final
我正在尝试从以下位置获取此PDF的页面: http://www.regulations.gov/#!documentDetail;D=APHIS-2012-0047-0291
答案 0 :(得分:2)
您应该仔细查看 download
接受的参数。不要混合选择器和普通字符串。 classVal
是一个XPath选择器,不是选择器后面的文本内容。您可以使用 getElementAttribute
检索元素属性。
casper.then(function(){
var classVal = x("//a[@class='gwt-Anchor' and contains(@href,'contentType=pdf')]");
var url = casper.getElementAttribute(classVal, "href");
casper.download(url, 'C:/users/bnickerson/desktop/script/result/p.pdf');
});