a spider project based node
使用爬虫技术,按热度爬取了豆瓣电影列表的一万部电影,按照基本信息存为json格式,以后可能转为其他格式数据
网络模块 axios完成网络查询请求,DOM操作使用cheerio模块 关于时间间隔使用 async await异步机制,控制时间间隔
- 控制查询次数和时间间隔,减轻服务器压力,延长时间间隔,在半夜查询,避免反爬虫的禁止爬取
- 能够成功查询的关键是伪造消息头,经过多次尝试才能成功查询
- 数据的获取和存储渐进进行,做数据保护,在查询出错之后能够发起重试,避免程序中断
- 这个爬取的是豆瓣的按照热度排行的一万部电影,豆瓣站点一直有反爬虫机制,所以爬取不能过于频繁,注意时间间隔
- 对于时间间隔问题,爬取的电影详情间隔尤为注意,太快的话会被禁止爬取,多次尝试之后,发现60s这个间隔应该刚好可以被允许的,你也可以手动调整时间间隔
- 注意消息头的伪造问题,多尝试使用异常捕获,即使没有全部爬取,将已经爬取的部分信息保存下来,同时记录问题原因
- 爬虫道德, 多review代码,做小额量的测试,不要直接执行大型任务,对爬取服务器造成困扰和自己无谓的时间消耗