逛知乎的时候经常看见有好多的福利贴(钓鱼贴),这不最近又让我发现了一个——眼睛好看是一种什么样的体验是一种怎么样的体验呢?我决定把答案里的照片都下到我的电脑里好好体验一下,怎么做呢,一张一张下好麻烦,最后自己写了个nodej的爬虫替我完成了这个任务~在这里分享一下吧!

这是成果...

 
顺便附上代码...
 

需要注意的是,只是创建一个“img”的文件夹是不够的,获取到的每一段图片数据流都需要有一个具体的文件作为载体,在每一段图片数据流写入对应的每一个文件的时候,这每一个文件才会是一张图片。所以在这里我把每一张图片地址的basename通过path模块切了下来作为对应的文件名,拼接到“./img/”后面,注意我并没有去显式的创建每一个图片文件,只是指明了具体的写入路径,当文件写入流没有发现这个文件的时候它会自动的帮你去创建的。

步骤说明,模块介绍...

这里用到了nodejs的两个第三方模块,一个是superagent,一个是cheerio,superagent是用来发送http请求的,cheerio则是用来截取页面数据的,你可以把它当作是服务器端的jquery,总的说来就是利用superagent发送http请求获取到具体页面的数据,然后再用cheerio把你想要的数据从你获取到的数据中截取出来,再通过文件流写入你的电脑。。。嗯就是这样~

这是superagent和cheerio的中文文档!

superagent中文文档

cheerio中文文档

这是尾部

写的有点烂...继续学习ing!!!

NodeJs爬虫—“眼睛好看是一种什么样的体验?”的更多相关文章

  1. NodeJS爬虫系统初探

    NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文 ...

  2. 【nodeJS爬虫】前端爬虫系列

    写这篇 blog 其实一开始我是拒绝的,因为爬虫爬的就是cnblog博客园.搞不好编辑看到了就把我的账号给封了:). 言归正传,前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如 ph ...

  3. NodeJS 爬虫爬取LOL英雄联盟的英雄信息,批量下载英雄壁纸

    工欲善其事,必先利其器,会用各种模块非常重要. 1.模块使用 (1)superagent:Nodejs中的http请求库(每个语言都有无数个,java的okhttp,OC的afnetworking) ...

  4. Nodejs爬虫进阶教程之异步并发控制

    Nodejs爬虫进阶教程之异步并发控制 之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回 ...

  5. nodejs爬虫——汽车之家所有车型数据

    应用介绍 项目Github地址:https://github.com/iNuanfeng/node-spider/ nodejs爬虫,爬取汽车之家(http://www.autohome.com.cn ...

  6. nodejs爬虫笔记(三)---爬取YouTube网站上的视频信息

    思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息.通过分析YouTube,发现可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类 ...

  7. nodejs爬虫笔记(二)---代理设置

    node爬虫代理设置 最近想爬取YouTube上面的视频信息,利用nodejs爬虫笔记(一)的方法,代码和错误如下 var request = require('request'); var chee ...

  8. 简单实现nodejs爬虫工具

    约30行代码实现一个简单nodejs爬虫工具,定时抓取网页数据. 使用npm模块 request---简单http请求客户端.(轻量级) fs---nodejs文件模块.   index.js var ...

  9. 第一个nodejs爬虫:爬取豆瓣电影图片

    第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require( ...

随机推荐

  1. 用自己的算法实现startsWith和endsWith功能。

    String str=new String(); str="erty"; Scanner sc= new Scanner(System.in); System.out.printl ...

  2. JDK7学习笔记之基础类型

    printf()的基础用法: 变量的基础用法: 字符的输出:

  3. QT5.5.0版本添加icon图标步骤

    1.制作icon图标文件 可以进入这个网站在线制作:http://www.ico.la/ 2.创建资源文件:qrc文件 接着 添加2两项,先点击prefix,然后添加文件--->图标路径 3.可 ...

  4. 在win10中创建开机自动登陆的网络驱动器

    前提环境: win10系统电脑一台. centos系统电脑一台,在该系统中安装samba,并配置共享. 要解决的问题: 在win10做了网络映射,将centos共享的文件夹设置成本地硬盘.在映射时,也 ...

  5. 关于C语言中的位域

    有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可.为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称 ...

  6. [转]NopCommerce How to code my own payment method

    本文转自:http://docs.nopcommerce.com/display/nc/How+to+code+my+own+payment+method Payment methods are im ...

  7. junit 测试及assert的扩张

    @Testpublic void method() 测试注释指示该公共无效方法它所附着可以作为一个测试用例. @Beforepublic void method() Before注释表示,该方法必须在 ...

  8. [No00000D]word如何批量删除超链接 怎么去掉网址保留文字

    1.删除超链接的文字及网址 这种情况是想把带有网址的文字统统删掉,文字和网址一概不留. 首先在word界面按下ALT+F9(在所有的域代码及其结果间进行切换.),超链接文本会被转换成代码的样式. 例如 ...

  9. Ajax讲解

    AJAX:即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 ...

  10. Json数据与Json数据转换

    1.json数据 [{\"IS_DISTRIBUTOR_LIMIT\":0,\"PROVISION_PRICE\":null,\"PRO_STATUS ...