1

所以我正在使用 Cheerio 执行一些简单的网络抓取。它工作得很好,输出出现在我的 cmd 行中。我可以从命令行获取数据并以某种方式将其放入一些 JavaScript 中吗?我基本上想在另一个网页上重新创建这些抓取的数据。

var request = require('request');
var cheerio = require('cheerio');

request('https://news.ycombinator.com', function (error, response, html) {
  if (!error && response.statusCode == 200) {
  var $ = cheerio.load(html);
  $('span.comhead').each(function(i, element){
      var a = $(this).prev();
      console.log(a.text());
  });
 }
});

任何建议将不胜感激。

4

1 回答 1

1

您可以将数据附加到正在加载 JavaScript 的页面。

<html>
<body>
<ul id="results">
</ul>
</body>
</html>

代替

console.log(a.text());

$("#results").append('<li>' + a.text() + '</li>');

根据您的评论:

我明白你的意思了。我刚刚研究cheerio发现可以将我提供的html加载到变量中。

//outside of the each, declare $results
var $results = cheerio.load('<html><body><ul id="results"></ul></body></html>');
//instead of the first append I gave (above), use this
$results.append('<li>' + a.text() + '</li>');

然后您可以使用类似的东西将生成的 html 输出到浏览器

res.send($results.html());
于 2014-01-14T16:55:08.353 回答