基础语法:精通 Python,熟悉 ES6 的基础语法,编码风格遵循 PEP8 规范,具有良好的注释习惯
面向对象:熟悉常用的设计模式,如单例、装饰、工厂、代理等设计模式
数据结构和算法:熟练掌握常见的查找和排序算法,如冒泡,二分查找,选择排序,堆排,快排。对常见的数据结构如链表,队列,堆,栈(堆栈)有一定的了解。
并发:熟悉 Python 的并发编程,根据不同的场景适当地选择多进程,多线程,异步(协程)等提高运行效率。
网络原理:熟悉 http 协议, TCP/IP 协议,UDP 协议,SOCKET 通信原理。
相关库的使用:熟练掌握 urllib,requests,requests-html,aiohttp 等库的使用,能够使用 numpy,pandas,matplotlib 等库。
web框架: 熟悉 flask 的使用
数据相关: 掌握常见的回归/分类算法,如线性回归,逻辑回归,SVM
反爬相关:能够应对字符验证码,滑动验证码,有一定的 JS 逆向经验。
自动化框架:掌握 selenium 和 appnium 的使用。
抓包工具:掌握 chrome 开发者工具、charles、mitmdump 的使用
IP代理:熟练使用 VPS ADSL 云主机代理
爬虫框架:熟悉 scrapy 框架
容器:熟悉 docker 容器的使用
数据库相关:
SQL:熟悉 MySQL 的 CRUD 操作,了解 MySQL 数据库
NoSQL:熟悉 MongoDB 和 redis 的 CRUD操作,了解 redis 的消息队列服务
协作:能够使用 git
消息队列:熟练使用 RabbitMQ
分布式:了解分布式架构,有分布式爬虫的构建经验
操作系统:基于linux/ windows/ 开发
C/S 架构的分布式爬虫框架,爬虫 Server,负责管理所有 URL。Server 提供接口给Clients,以便它们获取 URL 和提交 URL 。爬虫 Client,负责 URL 的下载、网页的解析以及存储等各种。Client 通过接口向 Server 请求需要被下载的 URL,下载完成后向 Server 报告 URL 是否下载成功,同时把从网页中提取到的 URLs 提交给 Server ,Server 把它们放入 URLPool 。