1.python 基础扎实,深入理解 python 进.线.协程
2.熟练掌握关系型数据库 mysql,sqlserver 非关系数据库 redis,mongodb,es
3.熟练使用 python 代理mitmproxy
4.熟练使用 pandas,numpy
5.熟练使用爬虫框架 scrapy 以及手机端框架 airtestIDE
6.熟练使用自动化测试工具 selenium
7.熟练使用 airflow 任务流框架
app 移动端数据抓取
该项目的主要实现目标是抓取社交类APP数据,提供队列入参,完成spider与后台对接。
数据去重,清洗,关系化后转存ES,配合后台功能
该系统使用airflow+scrapy+mitmproxy+pandas+mysql+MQ+ES+airtestIDE技术
airflow做任务定时,scrapy+MQ实现spider分布式,scrapy.pipeline完善用户,粉丝,文章,评论关联关系,pandas快速筛检出品牌,商品,以及负面敏感词,配合完成品牌方的负面舆情监控
该项目本人负责构建APP爬虫框架
配置交互式SSL/TLS拦截代理
使用 charles 进行接口分析
接口请求方式写入 scrapy ,接入 MQ 队列
airtestIDE编写手机自动化 job
mitmproxy 进行拆包处理,数据存入 mysql 同时同步ES,配合前端完成页面展示
船期spider
该项目的主要聚拢各大船公司的船期数据,分调度,spider,入库三块,层次间的依赖关系自上至下,全程mq进行衔接,用的技术有docker,pandas等
该项目使用RabbitMQ来实现分布爬网, 各功能解耦, 且具有高拓展性
调度采用apscheduler python 轻量级周期任务框架,该层主要完成与下层 spider 的报文请求参数的发送, 以及接收 spider 层返回到 MQ 的抓取状态来完成下次调度的更新
spider 层接收调度层发送到MQ的请求参数, 根据特定参数来完成指定船公司的数据抓取,并按规定格式, 返回到下层所监听的 MQ
入库阶段根据 scrapy 的 pipelines数据处理管道其实与spider 占用一个线程, 顾将 pipelines的数据处理拆到该层, pandas读取业务的匹配数据后,进行深拷贝, 并删除数据库游标, 入库阶段保持 mysql 最大时限链接, 以装饰器的方式进行游标异常, 游标重连
简单的 spider 编写和爬虫数据交付 使用基本的 request 和 request-html 库 存储数据到本地 mysql, pandas 导出excel 数据
某个社交平台评论数据 该项目使用 airtestide 进行手机端的数据抓取,保存抓取的文章信息 使用技术有 mysql pandas mitmproxy等