我有一个问题从我试图刮的网站获取图像网址。我能够通过这样的代码片段获得所有文本没问题:
var cost = casper.fetchText('span.large');
但是,当我尝试获取图像URL时,我在控制台中收到“未定义”的回复。
var img = casper.getHTML('.search-product-image').src;
.search-product-image是图像类,我只是想获取图片网址,谢谢。
用这个 :
casper.getElementAttribute('.search-product-image','src');
你可以包含JQuery并利用下面的语法糖或者以香草的方式做。仅供参考,如果你的getLink
有错误而你尝试casper.evaluate(getLinks)
它将返回null
。它不会指示它所在的行或错误。
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
clientScripts: ["vendor/jquery.min.js", "vendor/lodash.js"]
});
...
function getLinks(){
// Scraping images
$("img.ExImg.ExResult-img").each(function() {
imgSrc = this.src;
tempImagesArr.push(imgSrc);
});
}
casper.run(function() {
var workouts = this.evaluate(getLinks);
this.saveJSON(workouts);
this.exit();
});
我不知道casperjs是如何工作的,但你必须阅读casperjs文档。 http://casperjs.readthedocs.org/en/latest/modules/casper.html#gethtml
getHTML函数在容器中返回html值。所以你在这个字符串中分割了src值。或者你可以只使用querySelector。
试试这段代码:
var img = document.querySelector('.search-product-image').src;
如果你的文档中有很多元素,你必须使用document.querySelectorAll('。search-product-image')[0]