刚入坑node 写第二个node爬虫时,遇到了这个坑,记录一下。

主要步骤:

1.安装iconv-lite 输入npm install iconv-lite

2.将接收到的网页源码以二进制的方式存储下来,处理二进制数据流使用Buffer全局对象。

3. 然后对这些二进制的数据调用对应的解码程序。iconv-lite模块用于解码。

全部代码:

var http=require('https');
var fs=require('fs');
var cheerio=require('cheerio');
var iconv=require('iconv-lite');//iconv-lite模块用于解码
var request=require('request'); var url='https://search.51job.com/list/030200,000000,0000,00,9,99,web%25E5%2589%258D%25E7%25AB%25AF,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='; function goStart(url){
http.get(url,function(res){
var htmlData=[];//用于接收获取到的网页
var htmlDataLength=0;
//res.setEncoding('utf-8');
res.on('data',function(chunk){
htmlData.push(chunk);
htmlDataLength+=chunk.length;
}) res.on('end',function(){
//数据获取完毕后,开始解码
var bufferHtmlData=Buffer.concat(htmlData,htmlDataLength);
var decodeHtmlData=iconv.decode(bufferHtmlData,'gbk');
var $=cheerio.load(decodeHtmlData,{decodeEntities: false}); $('#resultList .el').each(function(index,item){
if(index!=0){
var name=$(this).children().eq(1).children().eq(0).text();
console.log(name);
}
})
})
})
} goStart(url);

运行结果(屏幕有点小,图截的不全)

教程参考地址:https://blog.csdn.net/javajiawei/article/details/65935338?utm_source=tuicool&utm_medium=referral

最新文章

  1. 【POI】修改Excel内容
  2. WebApi 接口测试工具:WebApiTestClient
  3. Dinic算法模板
  4. Linq To DataSet
  5. spark standalone zookeeper HA部署方式
  6. Web前端名词释义及原理
  7. JAVA-2-GetDay
  8. IO流程中IO向量iovec
  9. hbmy周赛1--C
  10. Minicom串口工具安装及配置
  11. jframe 对象(GroupedAction)传递无法调用对象的方法解决办法
  12. Mybatis+mysql批量插入性能分析测试
  13. WorldCount代码检查与优化——软件测试第三次作业
  14. .Net进阶系列(12)-异步多线程(Thread和ThreadPool)(被替换)
  15. 去除图像中的alpha通道或透明度
  16. MingW-v4.8.0+EDE-v13.04 配置使用C语言图形库
  17. javascript获取和设置URL中的参数
  18. TZOJ 1545 Hurdles of 110m(01背包dp)
  19. 图文转换NABCD
  20. Leetcode---栈系列刷题(python3实现)----#496 下一个更大元素I

热门文章

  1. 可执行 jar | 到底如何执行
  2. 远程算数程序——版本v1.0
  3. day19(乱码解决方案)
  4. centos常用命令--备份
  5. codeblocks+SDCC开发51单片机
  6. TCP、UDP网络通信
  7. uri.php
  8. bootstrap阶段测验【问题】
  9. Python基础的练习
  10. Delphi中Unicode转中文