爬虫知多少-(NodeJS 爬虫)
爬虫知多少-(NodeJS 爬虫)
一、爬虫简介
二、爬虫的运作方式
三、抓取策略
(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
- 其他关系型、非关系型数据库