我试图在网站中抓取一个列表,该列表会导致其他具有相同格式的网页。
我能够创建所有标签的集合,但是当我尝试访问一组页面时,我尝试使用它创建的密钥不会添加到我返回的对象中。
以下是我尝试处理堆栈溢出的示例:
var Xray = require('x-ray');
var x = Xray();
x('http://stackoverflow.com/', {
title: x(['a@href'], 'title'),
}) (function(err, obj) {
console.log(obj);
});
我希望我的obj.title成为所有href页面的标题列表,而不是我得到一个空对象。
但是,如果我尝试使用第一个href,那么我的标题就没问题了。
var Xray = require('x-ray');
var x = Xray();
x('http://stackoverflow.com/', {
title: x('a@href', 'title'),
}) (function(err, obj) {
console.log(obj);
});
之前有没有人遇到过这个问题?
答案 0 :(得分:0)
之前我遇到过这个问题,我的解决方案是这样的:
var Xray = require('x-ray');
var x = Xray();
x('http://stackoverflow.com/', {
title: x('a', [{links:'@href'}])
}) (function(err, obj) {
obj.forEach(function(links.link) {
x(links.link, "title")(function(err, data){
console.log(data) // should print the title
});
});
如果您遇到任何问题,请告诉我。
答案 1 :(得分:0)
您可以使用X射线Crawling to anoth site
var Xray = require('x-ray');
var x = Xray();
x("http://stackoverflow.com/", {
main: 'title',
image: x('#gbar a@href', 'title'), // follow link to google images
})(function(err, obj) {
/*