爬虫知多少-(NodeJS 爬虫)

                                        爬虫知多少-(NodeJS 爬虫)

一、爬虫简介

爬虫知多少-(NodeJS 爬虫)

二、爬虫的运作方式

爬虫知多少-(NodeJS 爬虫)

三、抓取策略

(1)深度优先搜索

爬虫知多少-(NodeJS 爬虫)

(2)广度优先搜索

爬虫知多少-(NodeJS 爬虫)

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

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
  • 其他关系型、非关系型数据库