架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 9288|回复: 0

node.js自动判断网页编码和带cookie访问

[复制链接]
发表于 2016-9-26 15:47:08 | 显示全部楼层 |阅读模式


discuz保持登陆状态的cookie(session)
http://www.itsvse.com/thread-3171-1-1.html
(出处: 码农网)


这个是效果!!!!!下面是源码
  1. var http = require('http');
  2. var iconv = require('iconv-lite');    //解决编码转换模块
  3. var BufferHelper = require('bufferhelper')

  4. //http请求,自动判断网页编码
  5. function HttpGet(options,callback)
  6. {
  7.     http.get(options,function(res){
  8.         var bufferHelper = new BufferHelper();
  9.         var contentType=res.headers['content-type'];
  10.         var format=null;
  11.         if(contentType!=undefined)
  12.         {
  13.             if(contentType.indexOf("gbk") != -1){
  14.                 format="gbk";
  15.             }
  16.             if(contentType.indexOf("utf-8") != -1){
  17.                 format="utf-8";
  18.             }
  19.             if(contentType.indexOf("gb2312") != -1){
  20.                 format="gb2312";
  21.             }
  22.         }
  23.         res.on("data", function(chunk) {
  24.             //注意,此编码必须与抓取页面的编码一致,否则会出现乱码,也可以动态去识别
  25.             var result = iconv.decode(chunk, format==null?'utf-8':format);
  26.             callback(result);
  27.         });
  28.     }).on("error", function() {
  29.         callback(null);
  30.     });
  31. }

  32. // Utility function that downloads a URL and invokes
  33. // callback with the data.
  34. function download(url, callback) {
  35.   http.get(url, function(res) {
  36.     var bufferHelper = new BufferHelper();
  37.     res.on('data', function (chunk) {
  38.       bufferHelper.concat(chunk);
  39.     });
  40.     res.on("end", function() {
  41.         //注意,此编码必须与抓取页面的编码一致,否则会出现乱码,也可以动态去识别
  42.         var result = iconv.decode(bufferHelper.toBuffer(),'GBK');
  43.         callback(result);
  44.     });
  45.   }).on("error", function() {
  46.     callback(null);
  47.   });
  48. }


  49. //Init("http://www.itsvse.com");
  50. HttpGet({
  51.     host: 'www.itsvse.com',
  52.     port: 80,
  53.     path: '/home.php?mod=spacecp&ac=profile&op=base',
  54.     headers:{
  55.         "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
  56.         "cookie":"ifvP_2132_saltkey=xxx; ifvP_2132_auth=xxx"
  57.     }
  58. },function(data){
  59.     console.log(data);
  60. })
  61. console.log("success");
复制代码






上一篇:discuz保持登陆状态的cookie(session)
下一篇:node.js批量post钓鱼网站
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-11-10 04:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表