javascript - 如何使用 Node.js 抓取页面

标签 javascript node.js web-scraping cheerio

我正在尝试抓取网站,但无法将结果写入 HTML 文件。

我在node.js中使用了cheerio,我的代码如下。

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

http.createServer(function (req, res) {
    res.write('<html><head></head><body>');
        request('http://www.espn.com', function(err, res, html){
            var $ = cheerio.load(html);

            $('a.realStory').each(function(i, element) {
                var node = $(this);
                var text = node.text();
            res.write('<p>'+ text +'</p>');     
            });
        });

  res.end('</body></html>');
}).listen(1337);

我如何运行这个文件,然后转到我的本地主机来查看它?

最佳答案

基本实现:

var express = require('express'),
    path = require('path'),
    request = require('request'),
    cheerio = require('cheerio'),
    app = express();
app.get('/', function (req, res) {
    request('http://www.espn.com', function (e, r, html) {
        var $ = cheerio.load(html);
        $('a.realStory').each(function (i, element) {
            var node = $(this);
            var text = node.text();
            res.write('<p>' + text + '</p>');
        });
        res.end();
    });
});
app.listen(process.env.PORT || 1337, function () {
    console.log("Server running..");
});

关于javascript - 如何使用 Node.js 抓取页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548932/

相关文章:

javascript - NW.js - PouchDB - 无法通过 Node Webkit 中的 require() 使用 PouchDB

javascript - 从 API 获取数据时的客户端与服务器端

node.js - 使用sequelize序列化外键的JSON数组

python - Scrapy Spider 返回 None 而不是 Item

python - 将 Web 服务器集成到 Python 脚本中

python - 获取由 Beautiful Soup 标签交叉的内容的全文

javascript - while 条件检查中的赋值是什么?

javascript - 如何在上传图像按钮上设置必填项

javascript - 在 jsTree 中获取已检查的节点

node.js - 如何保留对 NPM 模块所做的本地更改?