首页
学习
活动
专区
工具
TVP
发布

一个简单的node爬虫踩坑之路

一个简单的node爬虫踩坑之路准备工作

最近在看爬虫相关的文章,偶然想起来尝试一下用node来实现一个简单的爬虫。但是爬别的多没意思,当然是爬美女图片啊。。。

这大概 node 里面造的最多的轮子了。

于是,我选取了下面的地址:美女图片戳我,简单分析后,我的目标是通过爬取首页的轮播图,然后爬取轮播图的直链后面的详情大图,并按照图片名称存到指定的文件夹中。

大致流程是下面这个样子的:

看起来挺简单的,选用的技术方案是:

: 请求库

: 创建文件夹

: 控制并发请求

: Dom操作库

: 内置核心文件读写库

最终的效果

源码:

划重点

1.当爬取网页编码为 的网页的时候,爬到的内容中文显示是乱码

这个问题的原因其实是挺清晰的,就是网页编码与本地编码不一致或不支持引起的。以为只是个小问题,但是在找解决办法的时候却纠结了我很久,查询了网上相关资料,有说使用 解码一下就可以,然并卵有说使用encoding的,其实也没用。其实最后查阅资料得出的原因是,只支持utf-8的编码,如果需要支持其他的需要引用一个官方的库:,使用方法如下:

如此,即可正常返回中文

2. 异步操作用 async 来控制

对于下载图片,访问 url 这样存在异步的操作,如果操作对后面程序的执行有影响,最好使用 库来控制异步流程,类似的还有 。

下面是一个使用来来控制请求队列的官网示例,

其实官网有好多栗子,近期还会抽时间好好研究一下类似异步流程库的具体实现。

3. 404错误。获取不到资源

这个其实还好,主要是网站为了防爬的措施,可以尝试一下方法来试试看:

设置

降低请求的并发量

更换IP

总结

虽然只是一个简单的爬虫,但是发现自己对于 这种的异步流程还不是很熟悉,这点需要重点掌握。

另外,从爬虫的角度来说,node现在的库已经很完善了,还有 , 这种操作更6的库存在,掌握一门工具很容易,更重要的是要学会制作工具。

最后,练习爬虫只是出于对技术的热爱,莫要乱爬。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171210G08CRD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券