安利一个轻量级爬虫工具node-crawler

地址

https://node-crawler.readthedocs.io/zh_CN/latest/

实质

爬虫无非就是分析网页, 分析接口, 取得你想要的数据, 取得数据有两种方式:

  • 对于直接请求得到的是静态页面, 直接分析 html, 取得自己需要的数据
  • 还有就是通过 api 接口获取到的数据, 这样分析下参数, 就行

代码

var express = require("express");
var router = express.Router();

router.get("/", function(req, res, next) {
  // 设置请求头
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
  res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
  // 设置类型,页数
  var type = req.query.type;
  var page = req.query.page;
  type = type || "weixin";
  page = page || "1";
  // 引入依赖模块
  var superagent = require("superagent"); // 用来发起请求的,是一个轻量的,渐进式的ajax api
  var charset = require("superagent-charset"); // 防止爬取下来的数据乱码,更改字符格式
  var cheerio = require("cheerio"); // 为服务器特别定制的,快速、灵活、实施的jQuery核心实现
  // 设置请求地址
  var baseUrl = "https://www.qqtn.com/";
  var route = "tx/" + type + "tx_" + page + ".html";

  charset(superagent);

  superagent
    .get(baseUrl + route)
    .charset("gb2312")
    .end(function(err, sres) {
      var items = [];
      if (err) {
        console.log("err", err);
        res.json({
          code: 400,
          msg: "err",
          data: items
        });
        return;
      }
      // 获取网页源代码
      var $ = cheerio.load(sres.text);
      // 使用jquery 获取到标签,属性
      $("div.g-main-bg ul.g-select-img li a").each(function(idx, element) {
        var $element = $(element);
        var $subElement = $element.find("img");
        var $thumbImgSrc = $subElement.attr("src");
        items.push({
          title: $element.attr("title"),
          href: $element.attr("href"),
          thumbSrc: $thumbImgSrc
        });
      });
      res.json({
        code: 200,
        msg: "success",
        data: items
      });
    });
});

module.exports = router;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值