美文网首页
使用node创建最简单的爬虫

使用node创建最简单的爬虫

作者: 我不是完美的小孩 | 来源:发表于2019-07-18 13:55 被阅读0次

node创建一个简单的网页爬虫
安装node就可以了,创建index.js
用到request、fs、cheerio、iconv-lite、node-xlsx
request:发送请求
fs:操作文件
cheerio:node里面的jQuery,操作页面dom
iconv-lite:处理获取数据编码问题
node-xlsx:将数据保存为xlsx文档

文章以房天下的为例。

var request = require('request')
var cheerio = require('cheerio')
var iconv = require('iconv-lite'); //引入模块
var fs = require('fs')
var xlsx = require('node-xlsx')//获取表格
function writeXls(datas,index) {
  var buffer = xlsx.build([
      {
          name:'sheet'+index,
          data:datas   
      }
  ]);
  fs.writeFileSync('test1.xlsx',buffer,{'flag':'w'});   //生成excel
}
var list = []
var datas = [];

//获取房源数据
function getHotMovies(url,index) {
  request({url,encoding: null, gzip:true}, function (err,res, body) {
    if (!err && res.statusCode == 200) {
      var $ = cheerio.load(iconv.decode(body, 'GBK'));    
      var content = $('.shop_list .tit_shop')
      var length = content.length
      // console.info(length)

      while (length -- ) {
        var title = $('.shop_list .tit_shop').eq(length).text()
        var xiaoquName = $('.shop_list .add_shop a').eq(length).text().replace(/\s/g,"");
        var xiaoquAddr = $('.shop_list .add_shop span').eq(length).text()

        var arr = [title,xiaoquName,xiaoquAddr]
        datas.push(arr)
        title && list.push(`名字:${title}》》》小区名称:${xiaoquName}》》》小区地址:${xiaoquAddr}\r\n`)
      }


      writeXls(datas,index);


      fs.writeFile('test.txt',list,(err)=>{
        if (err) throw err;
        console.log('文件已被保存',index);
      })
    } else {
      console.info('网页加载失败',err)
    }
  })
}

//第一页和其他页码路径不一样,需要分开处理
getHotMovies('https://cd.esf.fang.com/integrate',1)    //第一页
for (let index = 2; index < 80; index++) {                    
  getHotMovies('https://cd.esf.fang.com/integrate/i3'+index+'/',index)
}

然后运行

node index.js

然后查看test1.xlsx、test.txt文件,就可以看到node爬下来的数据了。

相关文章

  • 使用node创建最简单的爬虫

    node创建一个简单的网页爬虫安装node就可以了,创建index.js用到request、fs、cheerio、...

  • node爬虫最简单的demo

    1.安装node 2.新建一个文件夹,文件夹里新建一个game.js 3.安装模块 在命令行输入安装模块命令:np...

  • node爬虫之天猫数据(一)

    说起爬虫,最开始想到的就是python scrapy库,但现在我们用node来写一个爬虫来爬天猫数据首先创建一个目...

  • node爬虫进阶之——登录

    在之前的文章node入门场景之——爬虫已经介绍过最简单的node爬虫实现,本文在原先的基础上更进一步,探讨一下如何...

  • 最简单易懂的node爬虫教程

    最近了解了一下node实现网络爬虫的知识。于是我借鉴吸收之后,决定用request工具和cheerio,结合比较新...

  • Node.js学习——HTTP服务器与客户端(一)

    1.实验目的 使用Node.js创建一个简单的HTTP服务器。 2.实验方法 使用http模块创建一个简单...

  • node简单的爬虫

    需要安装3个包 : koa, request 让请求变得更简单 , cheerio爬取来的数据,让它变成DOM树,...

  • 简单的Node爬虫

    写在开头 经过一个漫长的寒假,终于也是赶上复工的潮流。祝贺全国人民抗"疫"取得阶段性的胜利。在平常的Node使用过...

  • docker 简单部署

    使用 node 镜像部署 先创建一个简单的html 编写Dockerfile 构建镜像 运行容器 使用docker...

  • Pyspider基本使用

    pyspider web爬虫框架简单使用 pip3 install pyspider 在桌面创建一个pyspide...

网友评论

      本文标题:使用node创建最简单的爬虫

      本文链接:https://www.haomeiwen.com/subject/jlzqlctx.html