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')
随机推荐
- C++进阶--隐式类型转换
//############################################################################ /* 隐式类型转换 * * 类型转换可分为 ...
- Lucene 4.0 正式版发布,亮点特性中文解读[转]
http://blog.csdn.net/accesine960/article/details/8066877 2012年10月12日,Lucene 4.0正式发布了(点击这里下载最新版),这个版本 ...
- Redis持久化实践及灾难恢复模拟 [转]
参考资料:Redis Persistence http://redis.io/topics/persistenceGoogle Groups https://groups.google.com/for ...
- Web jsp开发学习——Session使用
先展示效果: 导包: 在servlet的doget里创建session 在head里显示session 接下来进行注销的命令 点击注销链接到这个 ...
- 【ZZ】C++11之统一初始化语法 | 桃子的博客志
C++11之统一初始化语法 | 桃子的博客志 https://taozj.net/201710/list-initialize.html 在当前新标准C++11的语法看来,变量合法的初始化器有如下形式 ...
- [UE4]枚举Enum和Switch Enum
- log4net 配置允许同时写日志到同一个文件
RollingFileAppender appender = new RollingFileAppender();... appender.LockingModel = new FileAppende ...
- SAS 输出内容到HTML
OPTIONS USER=SASHELP; ODS TAGSETS.HTMLPANEL PATH='F:\'(URL=NONE) FILE='A.HTML'; ODS GRAPHICS ON/IMAG ...
- JS一个算法题
题目:实现超出整数存储范围的两个大整数想加function(a,b).注意:参数a和b以及函数返回值都是字符串. 目的:考算法, 基本逻辑. 我实现的基本思路是: ①两个数字字符串长度补成一样,用字符 ...
- Android之socket多线程(二)
使用ServerSocket创建服务器端: public static void main(String[] args) throws IOException { // TODO Auto-gener ...