资讯专栏INFORMATION COLUMN

node.js简单爬虫

tinylcy / 1979人阅读

这里假设你已经安装好node.js和npm,如果没有安装,请参阅其他教程安装。

配置
首先是来配置package.json文件,这里使用express,request和cheerio。

package.json如下:

</>复制代码

  1. {
  2. "name": "node-scrape",
  3. "version": "0.0.1",
  4. "description": "Scrape",
  5. "main": "server.js",
  6. "dependencies": {
  7. "express" : "latest",
  8. "request" : "latest",
  9. "cheerio" : "latest"
  10. }
  11. }

npm 安装
把package.json文件放到一个你自己定义的文件夹(nodejs_scrape)下,然后在命令行下执行

</>复制代码

  1. cd nodejs_scrape
  2. npm install

抓取内容
在nodejs_scrape目录下新建一个server.js文件,先定义如下变量的和方法

</>复制代码

  1. var express = require("express");
  2. var fs = require("fs");
  3. var request = require("request");
  4. var cheerio = require("cheerio");
  5. var app = express();
  6. app.get("/",function (req,res) {
  7. //抓取内容的方法
  8. });
  9. app.listen("8081"); //使用8081端口
  10. console.log("Magic happens on port 8081");
  11. exports = module.exports = app;

下面我们就来完善get方法的内容
首先定义要抓取的url,这里以segmentfault为例

</>复制代码

  1. url = "https://segmentfault.com/news";

页面如下面所示,点击F12查看,我们就提取最简单的 class="mr10" 这个标签

抓取内容的方法如下

</>复制代码

  1. request(url, function (err,res,html) {
  2. if (!err){
  3. var $ = cheerio.load(html);
  4. var title;
  5. $(".mr10").filter(function () {
  6. var data = $(this);
  7. title = data.text(); //获取标签的内容
  8. console.log("title is " + title); //控制台打印
  9. });
  10. }
  11. });

server.js完整代码如下

</>复制代码

  1. /**
  2. * Created by Administrator on 2017/3/1.
  3. */
  4. var express = require("express");
  5. var fs = require("fs");
  6. var request = require("request");
  7. var cheerio = require("cheerio");
  8. var app = express();
  9. app.get("/",function (req,res) {
  10. //all scrape magic will happen here
  11. url = "https://segmentfault.com/news";
  12. request(url, function (err,res,html) {
  13. if (!err){
  14. var $ = cheerio.load(html);
  15. var title;
  16. $(".mr10").filter(function () {
  17. var data = $(this);
  18. title = data.text();
  19. console.log("title is " + title);
  20. });
  21. }
  22. });
  23. });
  24. app.listen("8081");
  25. console.log("Magic happens on port 8081");
  26. exports = module.exports = app;

运行
在nodejs_scrape目录下运行 node server ,可以看到如下所示

在浏览器运行http://127.0.0.1:8081/,可以看到抓取的内容如下:

这样我们就完成了一个简单到不能再简单的node.js爬虫。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81826.html

相关文章

  • 分分钟教你用node.js写个爬虫

    摘要:爬虫介绍二爬虫的分类通用网络爬虫全网爬虫爬行对象从一些种子扩充到整个,主要为门户站点搜索引擎和大型服务提供商采集数据。 分分钟教你用node.js写个爬虫 写在前面 十分感谢大家的点赞和关注。其实,这是我第一次在segmentfault上写文章。因为我也是前段时间偶然之间才开始了解和学习爬虫,而且学习node的时间也不是很长。虽然用node做过一些后端的项目,但其实在node和爬虫方面...

    fanux 评论0 收藏0
  • 使用Node.js开发一个小爬虫

    摘要:前言很多程序猿在最开始学习开发的时候应该都有一个想要自己开发一个爬虫的想法至少我是有的。其实弄懂了爬虫的原理,再回过头去看,发现开发一个简单的爬虫来说还是很容易的。 前言 很多程序猿在最开始学习开发的时候应该都有一个想要自己开发一个爬虫的想法(至少我是有的)。所以国内网络上也是爬虫盛行!学了node.js之后发现比较适合写爬虫,不过一直没有动手去写,正好这段时间比较闲,就写个爬虫玩下。...

    Songlcy 评论0 收藏0
  • node JS爬虫基础篇

    摘要:项目中一直用不到但是觉得这门以作为编程基础的服务端语言很有意思用它可以写一些接口写个爬虫这是一门基础篇看了一段时间文档后写个爬虫增强一下的认识吧爬虫的原理感觉很简单大致分为一下三步获取到对应网站的数据也就是代码筛选出你需要的数据比如用户的信 项目中一直用不到node,但是觉得node这门以js作为编程基础的服务端语言很有意思,用它可以写一些接口,写个爬虫.这是一门基础篇,看了一段时间文...

    AlanKeene 评论0 收藏0

发表评论

0条评论

tinylcy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<