【问题标题】:NodeJS x-ray web-scraper: how to follow links and get content from sub pageNodeJS x-ray web-scraper:如何跟踪链接并从子页面获取内容
【发布时间】:2015-08-04 07:13:25
【问题描述】:

所以我正在尝试使用 node.js x 射线抓取框架来抓取一些内容。虽然我可以从单个页面获取内容,但我不知道如何跟踪链接并一次性从子页面获取内容。

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

})

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

【问题讨论】:

标签: javascript node.js web-scraping web-crawler x-ray


【解决方案1】:

在一些帮助下,我找出了问题所在。我发布这个答案以防其他人可能有同样的问题。

工作示例:

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

})

【讨论】:

  • 嗯,您确定您粘贴了正确的代码吗?仍然无法让我的工作。做同样的事情,完全有你在问题中描述的 3 个症状..
  • 你能提供你从这个查询中得到的结果吗?
  • 看起来这是其他人的问题。所以我想知道你是如何让这个东西工作的? github.com/lapwinglabs/x-ray/issues/65
  • 复制粘贴上面的代码是否有效?我一回到家就会再试一次,结果会告诉你。
  • 我尝试运行您的代码,但未返回详细信息属性。它还在为你工作吗?你知道这种嵌套爬取行为是否已经被弃用了吗?
【解决方案2】:

版本 2.0.2 确实有效.. github 中有一个当前问题可以关注 https://github.com/lapwinglabs/x-ray/issues/189

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2014-05-23
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多