NodeJS x-ray web-scraper:如何跟踪链接并从子页面获取内容
NodeJS x-ray web-scraper: how to follow links and get content from sub page
所以我正在尝试使用 node.js X 射线抓取框架抓取一些内容。虽然我可以从单个页面获取内容,但我无法理解如何跟随 link 并一次性从子页面获取内容。
X 射线 github 配置文件上有一个示例,但如果我将代码更改到其他站点,它 returns 为空数据。
我已经简化了我的代码并让它抓取此示例的 SO 问题。
以下工作正常:
var Xray = require('x-ray');
var x = Xray();
x(' '#content', [{
title: '#question-header h1',
question: '.question .post-text'
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
这也有效:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
question: x('h3 a@href', '#content .question .post-text'),
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
但这给了我空的详细信息结果,我不知道哪里出了问题:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
link: 'h3 a@href',
details: x('h3 a@href', '#content', [{
title: 'h1',
question: '.question .post-text',
}])
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
我希望我的蜘蛛抓取列出问题的页面,然后按照 link 每个问题并检索其他信息。
因此,在一些帮助下,我找出了问题所在。我发布这个答案是为了防止其他人遇到同样的问题。
工作示例:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
link: 'h3 a@href',
details: x('h3 a@href', {
title: 'h1',
question: '.question .post-text',
})
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
版本 2.0.2 确实有效。github 中有一个当前问题需要关注 https://github.com/lapwinglabs/x-ray/issues/189
所以我正在尝试使用 node.js X 射线抓取框架抓取一些内容。虽然我可以从单个页面获取内容,但我无法理解如何跟随 link 并一次性从子页面获取内容。
X 射线 github 配置文件上有一个示例,但如果我将代码更改到其他站点,它 returns 为空数据。
我已经简化了我的代码并让它抓取此示例的 SO 问题。
以下工作正常:
var Xray = require('x-ray');
var x = Xray();
x(' '#content', [{
title: '#question-header h1',
question: '.question .post-text'
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
这也有效:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
question: x('h3 a@href', '#content .question .post-text'),
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
但这给了我空的详细信息结果,我不知道哪里出了问题:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
link: 'h3 a@href',
details: x('h3 a@href', '#content', [{
title: 'h1',
question: '.question .post-text',
}])
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
我希望我的蜘蛛抓取列出问题的页面,然后按照 link 每个问题并检索其他信息。
因此,在一些帮助下,我找出了问题所在。我发布这个答案是为了防止其他人遇到同样的问题。
工作示例:
var Xray = require('x-ray');
var x = Xray();
x('http://whosebug.com/questions', '#questions .question-summary .summary', [{
title: 'h3',
link: 'h3 a@href',
details: x('h3 a@href', {
title: 'h1',
question: '.question .post-text',
})
}])
(function(err, obj) {
console.log(err);
console.log(obj);
})
版本 2.0.2 确实有效。github 中有一个当前问题需要关注 https://github.com/lapwinglabs/x-ray/issues/189