ndoejs处理编码的爬虫
var express=require('express');
var http=require('http');
var cheerio=require('cheerio');
var fs=require('fs')
var iconv = require('iconv-lite')
var app=express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
var Nbaurl='http://china.nba.com/news/';
var html=""
var arr=[];
http.get(Nbaurl,function(req,res){
req.on('data',function(data){
html+=data;
});
req.on('end',function(){
var $=cheerio.load(html);
var hrefArr=$('#news').find('a');
// console.log(hrefArr[0])
hrefArr.each(function(item){
if($(this).attr('href').indexOf('javascript')==-1){
arr.push($(this).attr('href'));
}
})
create(arr)
});
req.on('error',function(err){
console.info(err);
});
})
function create(arrhref){
for(let i=0;i<arrhref.length-arrhref.length+10;i++){
http.get(arrhref[i],function(req,res){
let length=0;
let arr=[];
req.on('data',function(data){
arr.push(data);
length+=data.length
});
req.on('end',function(){
console.log(arr)
var data=Buffer.concat(arr,length);
var htmldata=iconv.decode(data,'gb2312');
var $=cheerio.load(htmldata);
var savedata=$("#MainL");
fs.writeFile(`./new/new${i}.html`,savedata,function(err){
console.log(err)
})
});
req.on('error',function(err){
console.info(err);
});
})
}
}
//⚠️ 需要先安装相关依赖 ⚠️新建new文件夹
ndoejs处理编码的爬虫的更多相关文章
- Python之爬虫的理解
# -*- coding: utf-8 -*- 中文用户一定先用这行来声明编码方式 爬虫: 爬虫是自动访问互联网,并且提取数据的程序 (从网络上获取非结构化的数据,ETL将这些数据转换为结构化数 ...
- python爬虫之一:requests库
目录 安装requtests requests库的连接异常 HTTP协议 HTTP协议对资源的操作 requests库的7个主要方法 request方法 get方法 网络爬虫引发的问题 robots协 ...
- Python爬虫教程-01-爬虫介绍
Spider-01-爬虫介绍 Python 爬虫的知识量不是特别大,但是需要不停和网页打交道,每个网页情况都有所差异,所以对应变能力有些要求 爬虫准备工作 参考资料 精通Python爬虫框架Scrap ...
- Python爬虫教程-00-写在前面
鉴于好多人想学Python爬虫,缺没有简单易学的教程,我将在CSDN和大家分享Python爬虫的学习笔记,不定期更新 基础要求 Python 基础知识 Python 的基础知识,大家可以去菜鸟教程进行 ...
- Python爬虫编程常见问题解决方法
Python爬虫编程常见问题解决方法: 1.通用的解决方案: [按住Ctrl键不送松],同时用鼠标点击[方法名],查看文档 2.TypeError: POST data should be bytes ...
- python格式转换的记录
Python的格式转换太难了. 与其说是难,具体来说应该是"每次都会忘记该怎么处理".所以于此记录,总的来说是编码+格式转换的记录. 本文记录环境:python3.6 经常见到的格 ...
- Node.js爬虫抓取数据 -- HTML 实体编码处理办法
cheerio DOM化并解析的时候 1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现 2.如果使用了 .html()方法,则很多情况下(多数是非英文的时候)都会出现,这时, ...
- crawler_网络爬虫中编码的正确处理与乱码的解决策略
转载: http://hi.baidu.com/erliang20088/item/9156132bdaeae8949c63d134 最近一个月一直在对nutch1.6版进行中等层次的二次开发,本来是 ...
- python爬虫得到unicode编码处理方式
在用python做爬虫的时候经常会与到结果中包含unicode编码,需要将结果转化为中文,处理方式如下 str.encode('utf-8').decode('unicode_escape')
随机推荐
- workerman vmstat服务器状态监控服务
转载出自 :http://www.workerman.net/workerman-vmstat workerman vmstat服务器状态监控服务 vmstat 命令可以展现服务器的CPU使用率,内存 ...
- 修改最后一次 已commit 的备注
输入命令 git commit --amend 会展示出最后一次提交的 备注信息 按 i 进行编辑 按esc 退出编辑 再按 shift +: (注意是英文的冒号),切换到命令行 wq 保存 即可 参 ...
- 1127 ZigZagging on a Tree (30 分)
1127 ZigZagging on a Tree (30 分) Suppose that all the keys in a binary tree are distinct positive in ...
- [UE4]封装蓝图函数Print String
World Context Object一定要赋值才会在多人游戏中出现Server和Client,如下图所示:
- [UE4]碰撞的随机性
物理引擎(包括碰撞)的计算具有随机性 原因: 一.每一帧的时间并不是严格相等 二.浮点数计算不是完全准确(两个浮点数运算,结果不可重复) 影响 在左边窗口(服务器端)打几发子弹把其中3个立方体的位置打 ...
- Android毛玻璃模糊化效果处理
三种方法 第一种:比较简单,性能比较低 /** * 通过调用系统高斯模糊api的方法模糊 * * @param bitmap source bitmap * @par ...
- AndroidStudio快捷键使用记录
输入logt+回车 自动增加Tag的定义. private static final String TAG = "MainActivity"; 输入logd+回车 自动增加d级别的 ...
- T-SQL 事务
use StudentManager go declare @errorSum int --定义变量,用于累计事务执行过程中的错误 --初始化为0,即无错误 begin transaction beg ...
- 做好平衡有多难?谈MMO的职业设计
转自:http://www.gameres.com/804893.html 首先要明确个概念:平衡不是在YY好的职业设计基础上去做调整,而是从游戏设计的开始就要打造一套有标准.可调节的游戏设计框架. ...
- Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04
Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04 By Raj Last updated ...