zoukankan      html  css  js  c++  java
  • nodejs抓取页面内容,并分析有无某些内容的js文件

    nodejs获取网页内容绑定data事件,获取到的数据会分几次相应,如果想全局内容匹配,需要等待请求结束,在end结束事件里把累积起来的全局数据进行操作!
    举个例子,比如要在页面中找有没有www.baidu.com,不多说了,直接放代码:
    //引入模块
    var http = require("http"),
    fs = require('fs'),
    url = require('url');
    
    //写入文件,把结果写入不同的文件
    var writeRes = function(p, r) {
         fs.appendFile(p , r, function(err) {
            if(err)
                 console.log(err);
            else
                 console.log(r);
        });
    },
    
    //发请求,并验证内容,把结果写入文件
    postHttp = function(arr, num) {
         console.log('第'+num+"条!")
         var a = arr[num].split(" - ");
         if(!a[0] || !a[1]) {
              return;
         }
         var address = url.parse(a[1]),
         options = {
              host : address.host,
              path: address.path,
              hostname : address.hostname,
              method: 'GET',
              headers: { 
                'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36'
            } 
         }
         var req = http.request(options, function(res) {
              if (res.statusCode == 200) {
                   res.setEncoding('UTF-8');
                   var data = '';
                   res.on('data', function (rd) {    
                        data += rd;
                   });
                   res.on('end', function(q) {
                        if(!~data.indexOf("www.baidu.com")) {
                             return writeRes('./no2.txt', a[0] + '--' + a[1] + '
    ');                        
                        } else {
                             return writeRes('./has2.txt', a[0] + '--' + a[1] + "
    ");
                        }
                   })
              } else {
                   writeRes('./error2.txt', a[0] + '--' + a[1] + '--' + res.statusCode + '
    ');
              }
         });
         req.on('error', function(e) {
              writeRes('./error2.txt', a[0] + '--' + a[1] + '--' + e + '
    ');
         })
         req.end();
    },
    
    //读取文件,获取需要抓取的页面
    openFile = function(path, coding) {
         fs.readFile(path, coding, function(err, data) {
              var res = data.split("
    ");    
              for (var i = 0, rl = res.length; i < rl; i++) {
                   if(!res[i])
                        continue;
                   postHttp(res, i);    
              };    
         })
    };
    openFile('./sites.log', 'utf-8');
    

    上面的代码大家应该都能看的懂!这里只是一个实验性的一些代码,具体的还要大家自己去研究研究!

  • 相关阅读:
    JavaScript Validator 报错
    JSP项目_Web路径_磁盘物理路径
    TreaponseHeader
    TrequestHeader
    HTML学习笔记1
    SQL文摘:DATE_TRUNC: A SQL Timestamp Function You Can Count On
    SQL文摘:Writing Subqueries in SQL
    Python文摘:Requests (Adavanced Usage)
    Python文摘:Requests
    Python文摘:More About Unicode in Python 2 and 3
  • 原文地址:https://www.cnblogs.com/xjser/p/4968866.html
Copyright © 2011-2022 走看看