zoukankan      html  css  js  c++  java
  • Node.js之网络小爬虫

    使用JavaScript在前端访问跨域页面常常用到Ajax,后端Node.js抓取网页信息就容易得多。

    下面是一个最简单的例子,抓取我的博客主页信息,显示首页博客标题。

     1 var http = require('http')
     2 var cheerio = require('cheerio')
     3 
     4 var url = 'http://www.cnblogs.com/feitan/'
     5 
     6 function filterHtml(html) {    //使用cheerio处理DOM
     7     var $ = cheerio.load(html)
     8 
     9     var data = []
    10     var titles = $('.postTitle a')
    11     titles.each(function(){
    12         data.push($(this).text())
    13     })
    14 
    15     return data
    16 }
    17 
    18 function outputInfo(data){    //数据进一步传递,这里直接输出
    19     data.forEach(function(title){
    20         console.log('
    '+ title)
    21     })
    22     
    23 }
    24 
    25 http.get(url,function(res){  //http模块get方法访问url资源
    26     var html = ''
    27     res.on('data',function(data){  
    28         html+=data
    29     })
    30 
    31     res.on('end',function(){
    32         var data = filterHtml(html)
    33         outputInfo(data)
    34     })
    35 }).on('error',function(){
    36     console.log('获取数据出错')
    37 })

    21行指定一个url资源发起get请求,回调函数处理响应对象response,response返回的是HTML文档。

    对DOM处理使用了cheerio包,它类似jQuery对JavaScriptDOM操作的封装,使用方式也类似。

    结果:

  • 相关阅读:
    第十一周课程总结
    第七周课程总结&实验报告(五)
    第四周课程总结&试验报告(二)
    2019春总结作业
    第十二周编程总结
    第十一周编程总结
    JAVA学期总结
    第十四周课程总结&实验报告
    第十三周课程总结
    第十二周学习总结
  • 原文地址:https://www.cnblogs.com/feitan/p/5322665.html
Copyright © 2011-2022 走看看