NodeJS 爬虫你了解多少

141 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,[点击查看活动详情]

一、爬虫简介

二、爬虫的运作方式

三、抓取策略

(1)深度优先搜索

(2)广度优先搜索

四、爬虫攻防之爬虫与反爬虫

1、校验用户户请求的Headers

反爬虫策略:

    • 对Headers的User-Agent进行检测
    • 对Referer进行检测

应对方式:

    • 将浏览器的User-Agent复制到爬虫的Headers中
    • 将Referer值修改为目标网站域名

2、基于用户行为反爬虫

反爬虫策略:

    • 监控同一IP短时间内多次访问同一页面
    • 监控同一账户短时间内多次进行相同操作

应对方式:

    • 使用IP代理,每请求几次更换一个 ip
    • 控制请求的速率,增加时间间隔
    • 黑科技:Baiduspider+

3、动态页面的反爬虫

反爬虫策略:

    • 验证码
    • ajax 加密

应对方式:

    • phantomJS(无界面 webkit 内核浏览器)
    • Headless Chrome (无界面 chrome 浏览器)

五、如何使用 NodeJS 进行爬虫开

1、请求

    • request
    • superagent

2、分析

    • cheerio

3、url处理

    • url (Node.js 标准库包含了该模块)

4、控制并发

    • eventproxy -- 目标源较少,用于汇总数据
    • async
      • 目标源较多或者不确定,需要使用队列,并且控制并发数

5、数据存储

    • sqlite
    • neo4j
    • 其他关系型、非关系型数据库

看完上面的 PPT和介绍,对爬虫可以说是有了一个简单的了解了,如果有同学想继续深入研究使用 NodeJS 进行爬虫开发,或者说想跟我一样,用 NodeJS 写一些好玩的东西的话,可以随时来找我交流哦,我们互相学习,共同进步,欢迎来撩~