定时、定量、制定目标的数据搜集程序。
技术库
网络请求
- urllib
- requests(三方)/ urllib3
- selenium(UI自动测试、动态js渲染)
- appium(手机App的爬虫或UI测试)
urllib
requests
基于urllib和urllib3封装的便捷使用的网络请求库
数据解析
- re正则
- xpath
- bs4
- json
数据存储
- pymysql
- mongodb
- elasticsearch
多任务库
- threading(多线程)、queue(线程队列)
- asynio(协程)、gevent/eventlet(三方)
爬虫框架
- scrapy
- scrapy-redis(分布式多机爬虫)
反爬策略
- UA(User-Agent)策略
- 登录限制(Cookie)策略
- 请求频次(IP代理)策略
- 验证码(图片-云打码,文字或物件图片选择、滑块)
- 动态js(Selenium/Splash/api接口)策略
爬虫与服务端的交互
伪造浏览器(User-Agent指定请求头),向服务器发起请求,接收响应数据,根据数据类型解析存储。
WSGI (web Servive Gateway interface web服务网关接口 基于socket)
WebKit (web客服端实现的框架)