2

我正在尝试在一个站点中抓取一个列表,该列表指向具有相同格式的其他页面。

我能够创建所有 a 标签的集合,但是当我尝试访问页面集合时,我尝试使用它创建的键不会添加到我返回的对象中。

这是我正在尝试处理堆栈溢出的示例:

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 是所有 a href 页面的标题列表,而不是我得到一个空对象。

但是,如果我尝试只使用第一个 a href,那么我得到的标题没问题。

var Xray = require('x-ray');
var x = Xray();
x('http://stackoverflow.com/', {
    title: x('a@href', 'title'),
}) (function(err, obj) {
    console.log(obj);
});

有没有人遇到过这个问题?

4

2 回答 2

1

我之前遇到过这个问题,我的解决方案是这样的:

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
        });
});

如果您遇到任何问题,请告诉我。

于 2016-09-22T07:09:51.887 回答
0

你可以使用 X 射线的爬行到另一个站点

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) {
/*
于 2017-10-10T04:48:53.577 回答