当前位置:  开发笔记 > 编程语言 > 正文

NodeJS x-ray web-scraper:如何关注链接并从子页面获取内容

如何解决《NodeJSx-rayweb-scraper:如何关注链接并从子页面获取内容》经验,为你挑选了1个好方法。

所以我试图用node.js x-ray scraping框架抓取一些内容.虽然我可以从单个页面获取内容,但我无法理解如何关注链接并一次从子页面获取内容.

x射线github配置文件中有一个示例,但如果我将代码更改为其他某个站点,则会返回空数据.

我简化了我的代码并使其抓取了此示例的SO问题.

以下工作正常:

var Xray = require('x-ray');
var x = Xray();

x('http://stackoverflow.com/questions/9202531/minimizing-nexpectation-for-a-custom-distribution-in-mathematica', '#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://stackoverflow.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://stackoverflow.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);

})

我希望我的蜘蛛抓住列出问题的页面,然后点击每个问题的链接并检索其他信息.



1> Ales Maticic..:

所以在一些帮助下我弄清楚问题是什么.我发布这个答案,以防其他人可能遇到同样的问题.

工作范例:

var Xray = require('x-ray');
var x = Xray();

x('http://stackoverflow.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);

})

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有