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')
随机推荐
- JFrame关闭程序就退出的设置
要是实现JFrame 关闭后程就退出或者停止可以调用setDefaultCloseOperation() 方法. 入下图程序 package ltb6w; import javax.swing.*; ...
- 黄聪:在.NET中使用GeckoFX 29
GeckoFX is a .NET control, that works similarly to “System.Windows.Forms.WebBrowser” Control, while ...
- mysql获取某个表的所有属性名及其数据
MYSQL类实现从数据库相应的表中获取所有属性及其数据,数据为元组类型.返回结果存放在字典中 import pymysql class MYSQL: def __init__(self): pass ...
- Microsoft Office 2016 简体中文 Vol 版镜像下载
在使用上,零售版和批量授权版并没有区别,只是授权方式方面的区别,相对而言,VOL 版的更容易激活一些,其他并没有什么区别了. 有需要的可以在下面下载:(以下均是 VL 版) 版本:Office 201 ...
- bzoj4183: tree
Description 自底向上模拟,原地操作以节省空间 #include<bits/stdc++.h> unsigned n,a,b,c,v[],mx,ans=; int main(){ ...
- springboot(五)读写分离,多个读库,Druid监控--待整理
1.修改mybatis.properties # 主数据源,默认的 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.d ...
- 理解Kubernetes(2): 应用的各种访问方式
理解Kubernetes系列文章: 手工搭建环境 应用的各种访问方式 1. 通过 Pod 的 IP 地址访问应用 1.1 Pod 的IP地址 每个Pod 都会被分配一个IP地址,比如下面这儿pod的I ...
- docker容器里面安装ssh
docker容器里面安装ssh https://blog.csdn.net/chengxuyuanyonghu/article/details/76619097
- Vue + TypeScript + ElementUI 封装表头查询组件
前段时间有朋友私信我 Vue + TypeScript 的问题,然后就打算写一篇 Vue + TypeScript 封装组件的文章 正好公司项目中需要封装一个表头查询组件,就拿出来分享一下~ 组件的整 ...
- 贪吃蛇 v1.01
1.长度二节:2.如果触及屏幕边缘,游戏结束: 感谢张瑞阳同学改进 #include<bits/stdc++.h>#include<windows.h>#include< ...