一份可以找工作的爬虫学习大纲(进阶篇)

如何快速吃牢饭——加速

隐约中有点印象,之前好像有一个公司员工,调高的线程数,加速爬数据,导致对方流量监控报警,然后就凉了。这一块其实已经和爬虫没啥太大关系了,是一些通用的技术。

利用多进程,多线程和协程的手段,实现加速。

在这里插入图片描述

这一块知识的理解,需要基于操作系统,可以提前复习一下,再学习此部分内容。

关于加速需要学习的知识点:

  1. 理解阻塞、非阻塞、同步、异步、并发、并行概念
  2. 熟悉python队列的使用以及MQ的概念
  3. 多进程、进程池和进程间通信
  4. 多线程、线程封装、线程全局变量、线程互斥、守护线程以及join的用法
  5. 协程、yield关键字、gevent、猴子补丁、asyncio
  6. 异步请求轮子aiohttp
  7. 常见解决方案:多线+异步(scrapy的原理)或 多进程+异步

框架在手,天下我有——轮子真香

爬虫领域,只此一家——scrapy。
官方教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
scrapy是一个python爬虫框架。我们自己用requests也能写爬虫(GET某个URL,然后Parse网页的内容),那么,问题来了,scrapy高明在哪些地方呢?就算自己写框架,基本也跳不出scrapy的这种设计思想。

在这里插入图片描述
各模块之间高内聚,低耦合,通过中间件实现开闭原则。

关于scrapy需要掌握的知识点:

  1. 理解五大模块与两大中间件的概念和作用
  2. 熟悉scrapy流程和配置
  3. 如何更换为其他数据库

和scrapy配套的还有scrapy-redis 分布式,当然你也可以scrapy-monogodb,scrapy-数据库……
在这里插入图片描述
在scrapy的基础之上,引入了redis数据,把一些请求的调度去重等任务放到数据库处理。本质上就是一个生产消费的模型。

关于scrapy-redis需要掌握的知识点:
1 掌握如何进行分布式配置
2 scrapy与scrapy-redis的区别
3. 如何更换为其他数据库

另外还有两个定时调度框架:celery和apsheduler。

这里聊聊apsheduler框架

官方文档与翻译:
https://apscheduler.readthedocs.io/en/latest/userguide.html
https://www.jianshu.com/p/4f5305e220f0
在这里插入图片描述
apsheduler:强大的任务调度工具,可以完成定时任务,周期任务等,它是跨平台的,用于取代Linux下的cron daemon或者Windows下的task scheduler。

内置三种调度调度系统:Cron风格、间隔性执行和仅在某个时间执行一次。
作业存储的backends支持:Memory、SQLAlchemy (any RDBMS supported by SQLAlchemy works)、MongoDB、Redis、RethinkDB和ZooKeeper。

关于apsheduler需要掌握的知识点:

  1. Apsheduler的四个组件理解,触发器triggers、任务储存器job stores、执行器executor和调度器 schedulers。
  2. 不同调度器的使用
  3. cron强大的类crontab表达式
  4. curd task

程序员之间的爱恨情仇——高级的反爬

验证码与js加密。

验证码常见的有:

  1. 纯数字
  2. 纯英文
  3. 英文加数字
  4. 计算题
  5. 12306分类选择
  6. 点选成语
  7. 手机验证码
  8. 滑动验证码
  9. 特殊轨迹拖动
  10. 拖动旋转图片

验证码这里不考虑上机器学习的话。常用的几种方案:

  1. 使用cookie来避免一部分验证码
  2. Tesseract-OCR识别工具
  3. 使用第三方打码平台

js加密,嗯~~,烧头发的东西。逼着你学前端。
关于js需要掌握的知识:

  1. 如何处理代码混淆
  2. 时间戳和哈希
  3. PyExecJS库的使用
  4. 浏览器网络分析工具

App逆向,嗯~~,更烧头发。逼着你学移动端。
关于App逆向需要掌握的知识:

  1. 反编译工具的使用
  2. Android基本文件结构
  3. App调试与抓包
  4. 常见四种加固方式

给老板和自己建一个情报系统——爬虫监控可视化

Gerapy

Gerapy是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发。
在这里插入图片描述
Gerapy可以帮助我们:

  1. 更方便地控制爬虫运行
  2. 更直观地查看爬虫状态
  3. 更实时地查看爬取结果
  4. 更简单地实现项目部署
  5. 更统一地实现主机管理
  6. 更轻松地编写爬虫代码(几乎没用,比较鸡肋)

Gerapy使用配置比较简单,基本分为七步:

  1. Gerapy下载
  2. 初始化Gerapy
  3. 初始化数据库
  4. 运行Gerapy服务
  5. 访问Gerapy管理界面
  6. 配置主机
  7. 配置Projects

Grafana

Grafana是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
官方文档:http://docs.grafana.org/
在这里插入图片描述

关于Grafana需要了解的知识:

  1. 获取部署Grafana
  2. 登录配置
  3. 添加配置数据源
  4. 创建调整面板
  5. 仪表盘变量功能
  6. 使用官方模板

开始爬虫前正确的做法应该是:
1.充桃饱网会员去CSDN提问
2.去百度和谷歌搜下这个网站有没有人分享出你要爬数据的API
3.看看电脑网页有没有你要的数据,写点代码测试调查下好不好拿,不管好不好拿,也不要急着就开爬
4.看看有没有电脑能打开的手机网站,一般格式为http://m.xxx.com或
http://mobile.xxxx.com,有的话可以用F12检查抓下包,看下抓取难易程度
5.看看有没有手机App,抓下App的包,看能不能抓到接口,如果新版抓不到,可以尝试旧版本
6.尝试分析app的一些分享外链
7.抓下公众号和小程序的包,看能不能抓到接口
8.都不好弄的话,尝试的话selenium/airtest
9.最高境界:web端破解js 移动端逆向破解
10.放弃抵抗:js爬虫,人肉爬虫
11.终极大杀器–女装卖萌:老板,不要搞我啦😂,不如晚上…
以上调查完成后,再去确定你要选择的爬取方式。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值