javascript - Noodle.js 设置/jQuery 流程(网页抓取帮助!)

标签 javascript jquery json ajax node.js

我已经通过 npm install 安装了 noodle.js,这就是我现在的代码。但是,当我在终端中运行此文件(noodleTest.js)时:node noodleTest.js,我收到以下错误:jQuery.getJSON 不是函数。我查看了有关此问题的大多数堆栈溢出答案,但找不到解决方案。通过http://noodlejs.com提供的例子它在控制台中返回一个数组,但是当我尝试运行此代码片段时,我收到一个错误。如有任何帮助,我们将不胜感激。

var noodle = require('noodlejs'),
jQuery = require ('jquery');

var query = {
        url: 'http://google.com/search?q=javascript',
        type: 'html',
        selector: 'h3.r a',
        extract: 'text'
    },
    uriQuery = encodeURIComponent(JSON.stringify(query)),
    request  = 'http://example.noodlejs.com/?q=' +
        uriQuery + '&callback=?';

// Make Ajax request to Noodle server
jQuery.getJSON(request, function (data) {
    console.log(data[0].results);
});

编辑:我尝试按照
中给出的示例进行操作 http://%20github.com/dharmafly/noodle#noodle-as-a-node-module ,并使用了 noodlejs.com 上的示例运行给出,但我不确定如何读取数据,或者如何提取对象中的内容。 var noodle = require('noodlejs');

noodle.query({
    url:      'http://google.com/search?q=javascript',
    selector: 'h3.r a',
    extract:  'text'
}) 
.then(function (results) {
    console.log(results);
});

这是以下输出:

 [noodle log  #1]
 Thu Jul 07 2016 00:09:43 GMT-0700 (PDT)
 Memory: 18.00mb (18870272 bytes)
 Noodle: The query follows...
 {"url":"http://google.com/search?q=javascript","selector":"h3.r a","extract":"text","type":"html","cache":true}


 [noodle log  #2]
 Thu Jul 07 2016 00:09:44 GMT-0700 (PDT)
 Memory: 19.00mb (19918848 bytes)
 Cache: Page has been cached


 [noodle log  #3]
 Thu Jul 07 2016 00:09:44 GMT-0700 (PDT)
 Memory: 20.00mb (20967424 bytes)
 Cache: Result has been cached

{ results: [ { results: [Object], created: 2016-07-07T07:09:44.286Z } ] }

最佳答案

这是一个有效的面条查询示例。不要关注我们正在废弃的小细节,看看我要求的选择器以及我想要提取的内容。

正如您所见,我从页面中随机选择了一个选择器,提取的数据是文本。但要查看提取的文本,请查看我对结果所做的操作。

var noodle = require('noodlejs');

noodle.query({
  url:      'http://edition.cnn.com/',
  selector: '#intl_homepage1-zone-1 > div.l-container > div > div.column.zn__column--idx-0 > ul > article > a > h2',
  extract:  'text'
})
  .then(function (results) {
    console.log(results);
    console.log(results.results[0]);

  });

结果是链式的,我并没有真正检查为什么也许如果你进行研究,你可以更好地利用它,但是如果你两次查看结果,因为你可以看到我所做的,你最终会得到你想要的信息提取。

关于javascript - Noodle.js 设置/jQuery 流程(网页抓取帮助!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38139477/

相关文章:

javascript - Nodemon 不重新加载页面

javascript - 预期的不合格 ID cstdlib

javascript - 如何使用JavaScript在局域网中发现arduino的DHCP IP

android - 如何从 Vimeo 获取 URL,以便我可以获取 JSON

java - Hibernate 一对多到 JSON 给出 : 500 internal server error

mysql - 将学说数组转换为 JSON

javascript - mongodb 不保存来自node.js 的条目

javascript - 回调事件不起作用 - 使用 Owl Carousel

javascript - 禁用/销毁后重新应用 Twitter Bootstrap Tooltip

javascript - JQuery Sortable 和 Draggable - 水平和垂直移动